<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=213.147.188.235</id>
	<title>Mikrocontroller.net - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=213.147.188.235"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/213.147.188.235"/>
	<updated>2026-04-11T09:33:40Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94990</id>
		<title>ARM Cortex Mikrocontroller</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94990"/>
		<updated>2017-01-20T16:49:52Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Firma ARM stellt selbst keine Prozessoren/Controller her, sondern entwickelt nur sogenannte &amp;quot;IP-Cores&amp;quot;, die von Herstellern wie Atmel, Infineon, ST, NXP, TI und vielen anderen lizenziert werden. Diese Hersteller ergänzen den Core um Speicher und Peripherie. Der Vorteil dieses Modells ist, dass dadurch sehr viele Prozessoren mit unterschiedlichster Ausstattung verfügbar sind, die alle mit dem selben Befehlssatz (und damit dem selben Compiler) programmierbar sind.&lt;br /&gt;
&lt;br /&gt;
Allen ARM-Cores gemeinsam ist die 32 Bit RISC-Architektur. Für diese gibt es den klassischen 32bit ARM Befehlssatz und den zusätzlichen, kleineren 16/32 Bit &#039;&#039;&#039;Thumb&#039;&#039;&#039;-Befehlssatz. Die verschiedenen Prozessoren/Controller unterstützen einen oder beide davon. Thumb-fähige Controller sind erkennbar am &#039;&#039;&#039;T&#039;&#039;&#039; in der Bezeichnung, z.&amp;amp;nbsp;B. ARM7&#039;&#039;&#039;T&#039;&#039;&#039;DMI. Thumb kodiert die meisten Instruktionen in 16bit, den Rest in 32bit, was in einem kleineren Prozessor und geringenem Platzbedarf des Codes resultiert [http://www.arm.com/files/pdf/ARM_Microcontroller_Code_Size_%28full%29.pdf]; der Nachteil ist die etwas niedrigere Geschwindigkeit. Die Cortex-M Kerne unterstützen ausschließlich den Thumb2-Befehlssatz.&lt;br /&gt;
&lt;br /&gt;
Seit einigen Jahren sind ARM-basierte Mikrocontroller erhältlich, die aufgrund der vergleichbar einfachen Beschaltung und niedrigem Stromverbrauch eine echte Alternative zu 8-Bit-Controllern wie dem [[AVR]] darstellen. Die ersten Controller mit diesen Eigenschaften verwendeten den ARM7TDMI-Kern (zB. LPC2000) (ARMv4T-Architektur). Mittlerweile wurden diese vom Cortex M-Kern abgelöst (ARMv6M, ARMv7M-Architektur), welcher in verschiedenen Varianten für verschiedene Einsatzzwecke verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In diesem Artikel geht es primär um die ARM Cortex-M Mikrocontroller, weniger um ARM [[Cortex-A]] Prozessoren, welche in Smartphones, [[Raspberry Pi]] u.ä. eingesetzt werden.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Varianten des Cortex-M Mikrocontroller-Kerns, aufgeführt vom energieeffizientesten zum leistungsfähigsten (Liste nicht unbedingt aktuell! Am besten immer die Herstellerseiten bemühen).&lt;br /&gt;
&lt;br /&gt;
sgdzg&lt;br /&gt;
&lt;br /&gt;
sdg&lt;br /&gt;
&lt;br /&gt;
sdahg&lt;br /&gt;
&lt;br /&gt;
fdhgfg&lt;br /&gt;
&lt;br /&gt;
sd&lt;br /&gt;
&lt;br /&gt;
sadd&lt;br /&gt;
&lt;br /&gt;
asd&lt;br /&gt;
&lt;br /&gt;
a&lt;br /&gt;
&lt;br /&gt;
aaa&lt;br /&gt;
&lt;br /&gt;
aaa&lt;br /&gt;
&lt;br /&gt;
aaa&lt;br /&gt;
&lt;br /&gt;
asaa&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94989</id>
		<title>ARM Cortex Mikrocontroller</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94989"/>
		<updated>2017-01-20T16:49:47Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Firma ARM stellt selbst keine Prozessoren/Controller her, sondern entwickelt nur sogenannte &amp;quot;IP-Cores&amp;quot;, die von Herstellern wie Atmel, Infineon, ST, NXP, TI und vielen anderen lizenziert werden. Diese Hersteller ergänzen den Core um Speicher und Peripherie. Der Vorteil dieses Modells ist, dass dadurch sehr viele Prozessoren mit unterschiedlichster Ausstattung verfügbar sind, die alle mit dem selben Befehlssatz (und damit dem selben Compiler) programmierbar sind.&lt;br /&gt;
&lt;br /&gt;
Allen ARM-Cores gemeinsam ist die 32 Bit RISC-Architektur. Für diese gibt es den klassischen 32bit ARM Befehlssatz und den zusätzlichen, kleineren 16/32 Bit &#039;&#039;&#039;Thumb&#039;&#039;&#039;-Befehlssatz. Die verschiedenen Prozessoren/Controller unterstützen einen oder beide davon. Thumb-fähige Controller sind erkennbar am &#039;&#039;&#039;T&#039;&#039;&#039; in der Bezeichnung, z.&amp;amp;nbsp;B. ARM7&#039;&#039;&#039;T&#039;&#039;&#039;DMI. Thumb kodiert die meisten Instruktionen in 16bit, den Rest in 32bit, was in einem kleineren Prozessor und geringenem Platzbedarf des Codes resultiert [http://www.arm.com/files/pdf/ARM_Microcontroller_Code_Size_%28full%29.pdf]; der Nachteil ist die etwas niedrigere Geschwindigkeit. Die Cortex-M Kerne unterstützen ausschließlich den Thumb2-Befehlssatz.&lt;br /&gt;
&lt;br /&gt;
Seit einigen Jahren sind ARM-basierte Mikrocontroller erhältlich, die aufgrund der vergleichbar einfachen Beschaltung und niedrigem Stromverbrauch eine echte Alternative zu 8-Bit-Controllern wie dem [[AVR]] darstellen. Die ersten Controller mit diesen Eigenschaften verwendeten den ARM7TDMI-Kern (zB. LPC2000) (ARMv4T-Architektur). Mittlerweile wurden diese vom Cortex M-Kern abgelöst (ARMv6M, ARMv7M-Architektur), welcher in verschiedenen Varianten für verschiedene Einsatzzwecke verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In diesem Artikel geht es primär um die ARM Cortex-M Mikrocontroller, weniger um ARM [[Cortex-A]] Prozessoren, welche in Smartphones, [[Raspberry Pi]] u.ä. eingesetzt werden.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Varianten des Cortex-M Mikrocontroller-Kerns, aufgeführt vom energieeffizientesten zum leistungsfähigsten (Liste nicht unbedingt aktuell! Am besten immer die Herstellerseiten bemühen).&lt;br /&gt;
&lt;br /&gt;
sgdzg&lt;br /&gt;
&lt;br /&gt;
sdg&lt;br /&gt;
&lt;br /&gt;
sdahg&lt;br /&gt;
&lt;br /&gt;
fdhgfg&lt;br /&gt;
&lt;br /&gt;
sd&lt;br /&gt;
&lt;br /&gt;
sadd&lt;br /&gt;
&lt;br /&gt;
asd&lt;br /&gt;
&lt;br /&gt;
a&lt;br /&gt;
&lt;br /&gt;
aaa&lt;br /&gt;
&lt;br /&gt;
aaa&lt;br /&gt;
&lt;br /&gt;
aaa&lt;br /&gt;
&lt;br /&gt;
== Artikel aus der Kategorie ARM ==&lt;br /&gt;
&amp;lt;ncl style=compact maxdepth=2 headings=bullet headstart=2&lt;br /&gt;
      showcats=1 showarts=1&amp;gt;ARM&amp;lt;/ncl&amp;gt;&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 &#039;&#039;&#039;EFM32&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/XMCxxxx &#039;&#039;&#039;Infineon XMCxxxx&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [https://www.mikrocontroller.net/articles/Cortex-A ARM Cortex A]&lt;br /&gt;
&lt;br /&gt;
[[Category:ARM| ]]&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94988</id>
		<title>ARM Cortex Mikrocontroller</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94988"/>
		<updated>2017-01-20T16:49:42Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Firma ARM stellt selbst keine Prozessoren/Controller her, sondern entwickelt nur sogenannte &amp;quot;IP-Cores&amp;quot;, die von Herstellern wie Atmel, Infineon, ST, NXP, TI und vielen anderen lizenziert werden. Diese Hersteller ergänzen den Core um Speicher und Peripherie. Der Vorteil dieses Modells ist, dass dadurch sehr viele Prozessoren mit unterschiedlichster Ausstattung verfügbar sind, die alle mit dem selben Befehlssatz (und damit dem selben Compiler) programmierbar sind.&lt;br /&gt;
&lt;br /&gt;
Allen ARM-Cores gemeinsam ist die 32 Bit RISC-Architektur. Für diese gibt es den klassischen 32bit ARM Befehlssatz und den zusätzlichen, kleineren 16/32 Bit &#039;&#039;&#039;Thumb&#039;&#039;&#039;-Befehlssatz. Die verschiedenen Prozessoren/Controller unterstützen einen oder beide davon. Thumb-fähige Controller sind erkennbar am &#039;&#039;&#039;T&#039;&#039;&#039; in der Bezeichnung, z.&amp;amp;nbsp;B. ARM7&#039;&#039;&#039;T&#039;&#039;&#039;DMI. Thumb kodiert die meisten Instruktionen in 16bit, den Rest in 32bit, was in einem kleineren Prozessor und geringenem Platzbedarf des Codes resultiert [http://www.arm.com/files/pdf/ARM_Microcontroller_Code_Size_%28full%29.pdf]; der Nachteil ist die etwas niedrigere Geschwindigkeit. Die Cortex-M Kerne unterstützen ausschließlich den Thumb2-Befehlssatz.&lt;br /&gt;
&lt;br /&gt;
Seit einigen Jahren sind ARM-basierte Mikrocontroller erhältlich, die aufgrund der vergleichbar einfachen Beschaltung und niedrigem Stromverbrauch eine echte Alternative zu 8-Bit-Controllern wie dem [[AVR]] darstellen. Die ersten Controller mit diesen Eigenschaften verwendeten den ARM7TDMI-Kern (zB. LPC2000) (ARMv4T-Architektur). Mittlerweile wurden diese vom Cortex M-Kern abgelöst (ARMv6M, ARMv7M-Architektur), welcher in verschiedenen Varianten für verschiedene Einsatzzwecke verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In diesem Artikel geht es primär um die ARM Cortex-M Mikrocontroller, weniger um ARM [[Cortex-A]] Prozessoren, welche in Smartphones, [[Raspberry Pi]] u.ä. eingesetzt werden.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Varianten des Cortex-M Mikrocontroller-Kerns, aufgeführt vom energieeffizientesten zum leistungsfähigsten (Liste nicht unbedingt aktuell! Am besten immer die Herstellerseiten bemühen).&lt;br /&gt;
&lt;br /&gt;
sgdzg&lt;br /&gt;
&lt;br /&gt;
sdg&lt;br /&gt;
&lt;br /&gt;
sdahg&lt;br /&gt;
&lt;br /&gt;
fdhgfg&lt;br /&gt;
&lt;br /&gt;
sd&lt;br /&gt;
&lt;br /&gt;
sadd&lt;br /&gt;
&lt;br /&gt;
asd&lt;br /&gt;
&lt;br /&gt;
a&lt;br /&gt;
&lt;br /&gt;
aaa&lt;br /&gt;
&lt;br /&gt;
aaa&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
*ARM Systems Developer&#039;s Guide (2004) ISBN 1558608745 [http://books.google.de/books?id=HKKUkDQE17QC&amp;amp;output=html Im Buch blättern] [http://booksite.elsevier.com/9781558608740/ Programmbeispiele aus dem Buch, u.a. FFT, FIR/IIR-Filter, Division, Wurzel]&lt;br /&gt;
*ARM Assembly Language - an Introduction (2007) ISBN 1847536964 [http://books.google.de/books?id=8KJX5R8mMvsC&amp;amp;output=html Im Buch blättern]   [http://www.lulu.com/content/1172076 Verlagsseite &amp;quot;Book on demand&amp;quot;]&lt;br /&gt;
*ARM Rechnerarchitekturen für System-on-Chip-Design (2002) ISBN 3826608542&lt;br /&gt;
*Co-Verification of Hardware and Software for Arm Soc Design (2004) ISBN 0750677309&lt;br /&gt;
*ARM System-on-Chip Architecture (2000) ISBN 0201675196 [http://books.google.de/books?id=J_Fu_YTVD9gC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*ARM Architecture Reference Manual ISBN 0201737191 [http://books.google.de/books?id=O5G-6WX1xWsC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*Messen, Steuern und Regeln mit ARM-Mikrocontrollern ISBN 3772340172 [http://books.google.de/books?id=TKs4kN-zNYQC&amp;amp;output=html im Buch blättern]&lt;br /&gt;
*Programming Arm Microcontrollers: Using C and the Lpc2100 Family (2005? /ab 1. Dezember 2008) ISBN 0321263359&lt;br /&gt;
*Arm Assembly: Fundamentals and Techniques (ab 1. März 2009) ISBN 1439806101&lt;br /&gt;
*Reliable Embedded Systems: Using 8051 and ARM Microcontrollers (2007) ISBN 0321252918 600 Seiten mit CD [http://vig.pearsoned.co.uk/catalog/academic/product/0,1144,0321252918-TOC,00.html Inhaltsverzeichnis]&lt;br /&gt;
* C und C++ für Embedded Systems (u.a. ARM Cortex-M3) mitp-Verlag 2008 ISBN 382665949X&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M0 (Joseph Yiu) Newnes Verlag ISBN 0123854776&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M3 (Joseph Yiu) Newnes Verlag ISBN 185617963X&lt;br /&gt;
&lt;br /&gt;
== Artikel aus der Kategorie ARM ==&lt;br /&gt;
&amp;lt;ncl style=compact maxdepth=2 headings=bullet headstart=2&lt;br /&gt;
      showcats=1 showarts=1&amp;gt;ARM&amp;lt;/ncl&amp;gt;&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 &#039;&#039;&#039;EFM32&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/XMCxxxx &#039;&#039;&#039;Infineon XMCxxxx&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [https://www.mikrocontroller.net/articles/Cortex-A ARM Cortex A]&lt;br /&gt;
&lt;br /&gt;
[[Category:ARM| ]]&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94987</id>
		<title>ARM Cortex Mikrocontroller</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94987"/>
		<updated>2017-01-20T16:49:37Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Firma ARM stellt selbst keine Prozessoren/Controller her, sondern entwickelt nur sogenannte &amp;quot;IP-Cores&amp;quot;, die von Herstellern wie Atmel, Infineon, ST, NXP, TI und vielen anderen lizenziert werden. Diese Hersteller ergänzen den Core um Speicher und Peripherie. Der Vorteil dieses Modells ist, dass dadurch sehr viele Prozessoren mit unterschiedlichster Ausstattung verfügbar sind, die alle mit dem selben Befehlssatz (und damit dem selben Compiler) programmierbar sind.&lt;br /&gt;
&lt;br /&gt;
Allen ARM-Cores gemeinsam ist die 32 Bit RISC-Architektur. Für diese gibt es den klassischen 32bit ARM Befehlssatz und den zusätzlichen, kleineren 16/32 Bit &#039;&#039;&#039;Thumb&#039;&#039;&#039;-Befehlssatz. Die verschiedenen Prozessoren/Controller unterstützen einen oder beide davon. Thumb-fähige Controller sind erkennbar am &#039;&#039;&#039;T&#039;&#039;&#039; in der Bezeichnung, z.&amp;amp;nbsp;B. ARM7&#039;&#039;&#039;T&#039;&#039;&#039;DMI. Thumb kodiert die meisten Instruktionen in 16bit, den Rest in 32bit, was in einem kleineren Prozessor und geringenem Platzbedarf des Codes resultiert [http://www.arm.com/files/pdf/ARM_Microcontroller_Code_Size_%28full%29.pdf]; der Nachteil ist die etwas niedrigere Geschwindigkeit. Die Cortex-M Kerne unterstützen ausschließlich den Thumb2-Befehlssatz.&lt;br /&gt;
&lt;br /&gt;
Seit einigen Jahren sind ARM-basierte Mikrocontroller erhältlich, die aufgrund der vergleichbar einfachen Beschaltung und niedrigem Stromverbrauch eine echte Alternative zu 8-Bit-Controllern wie dem [[AVR]] darstellen. Die ersten Controller mit diesen Eigenschaften verwendeten den ARM7TDMI-Kern (zB. LPC2000) (ARMv4T-Architektur). Mittlerweile wurden diese vom Cortex M-Kern abgelöst (ARMv6M, ARMv7M-Architektur), welcher in verschiedenen Varianten für verschiedene Einsatzzwecke verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In diesem Artikel geht es primär um die ARM Cortex-M Mikrocontroller, weniger um ARM [[Cortex-A]] Prozessoren, welche in Smartphones, [[Raspberry Pi]] u.ä. eingesetzt werden.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Varianten des Cortex-M Mikrocontroller-Kerns, aufgeführt vom energieeffizientesten zum leistungsfähigsten (Liste nicht unbedingt aktuell! Am besten immer die Herstellerseiten bemühen).&lt;br /&gt;
&lt;br /&gt;
sgdzg&lt;br /&gt;
&lt;br /&gt;
sdg&lt;br /&gt;
&lt;br /&gt;
sdahg&lt;br /&gt;
&lt;br /&gt;
fdhgfg&lt;br /&gt;
&lt;br /&gt;
sd&lt;br /&gt;
&lt;br /&gt;
sadd&lt;br /&gt;
&lt;br /&gt;
asd&lt;br /&gt;
&lt;br /&gt;
a&lt;br /&gt;
&lt;br /&gt;
aaa&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.mySTM32.de Online Tutorial für den STM32]&lt;br /&gt;
* [http://www.myXMC.de Online Tutorial für den XMC von Infineon]&lt;br /&gt;
* [http://www.myUGL.de Online Tutorial für freie Grafikbibliothek, STM32, STM32F429, TFT, Touch]&lt;br /&gt;
* [http://embdev.net/forum/arm-gcc ARM-GCC Forum] im englischsprachigen &amp;quot;Ableger&amp;quot; von mikrocontroller.net embdev.net u.a. für WinARM, Yagarto, CS Codebench&lt;br /&gt;
* [http://www.arm.com/products/processors/cortex-m/index.php Cortex-M Produktseite von ARM]&lt;br /&gt;
* [http://infocenter.arm.com/help/index.jsp Infocenter von ARM Ltd.]&lt;br /&gt;
* [http://www.open-research.org.uk/ARMuC/ ARMuC ARM microcontroller Wiki]&lt;br /&gt;
* [http://chaosradio.ccc.de/cre151.html Chaosradio Express - Die ARM-Architektur]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
*ARM Systems Developer&#039;s Guide (2004) ISBN 1558608745 [http://books.google.de/books?id=HKKUkDQE17QC&amp;amp;output=html Im Buch blättern] [http://booksite.elsevier.com/9781558608740/ Programmbeispiele aus dem Buch, u.a. FFT, FIR/IIR-Filter, Division, Wurzel]&lt;br /&gt;
*ARM Assembly Language - an Introduction (2007) ISBN 1847536964 [http://books.google.de/books?id=8KJX5R8mMvsC&amp;amp;output=html Im Buch blättern]   [http://www.lulu.com/content/1172076 Verlagsseite &amp;quot;Book on demand&amp;quot;]&lt;br /&gt;
*ARM Rechnerarchitekturen für System-on-Chip-Design (2002) ISBN 3826608542&lt;br /&gt;
*Co-Verification of Hardware and Software for Arm Soc Design (2004) ISBN 0750677309&lt;br /&gt;
*ARM System-on-Chip Architecture (2000) ISBN 0201675196 [http://books.google.de/books?id=J_Fu_YTVD9gC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*ARM Architecture Reference Manual ISBN 0201737191 [http://books.google.de/books?id=O5G-6WX1xWsC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*Messen, Steuern und Regeln mit ARM-Mikrocontrollern ISBN 3772340172 [http://books.google.de/books?id=TKs4kN-zNYQC&amp;amp;output=html im Buch blättern]&lt;br /&gt;
*Programming Arm Microcontrollers: Using C and the Lpc2100 Family (2005? /ab 1. Dezember 2008) ISBN 0321263359&lt;br /&gt;
*Arm Assembly: Fundamentals and Techniques (ab 1. März 2009) ISBN 1439806101&lt;br /&gt;
*Reliable Embedded Systems: Using 8051 and ARM Microcontrollers (2007) ISBN 0321252918 600 Seiten mit CD [http://vig.pearsoned.co.uk/catalog/academic/product/0,1144,0321252918-TOC,00.html Inhaltsverzeichnis]&lt;br /&gt;
* C und C++ für Embedded Systems (u.a. ARM Cortex-M3) mitp-Verlag 2008 ISBN 382665949X&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M0 (Joseph Yiu) Newnes Verlag ISBN 0123854776&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M3 (Joseph Yiu) Newnes Verlag ISBN 185617963X&lt;br /&gt;
&lt;br /&gt;
== Artikel aus der Kategorie ARM ==&lt;br /&gt;
&amp;lt;ncl style=compact maxdepth=2 headings=bullet headstart=2&lt;br /&gt;
      showcats=1 showarts=1&amp;gt;ARM&amp;lt;/ncl&amp;gt;&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 &#039;&#039;&#039;EFM32&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/XMCxxxx &#039;&#039;&#039;Infineon XMCxxxx&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [https://www.mikrocontroller.net/articles/Cortex-A ARM Cortex A]&lt;br /&gt;
&lt;br /&gt;
[[Category:ARM| ]]&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94986</id>
		<title>ARM Cortex Mikrocontroller</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94986"/>
		<updated>2017-01-20T16:49:32Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Firma ARM stellt selbst keine Prozessoren/Controller her, sondern entwickelt nur sogenannte &amp;quot;IP-Cores&amp;quot;, die von Herstellern wie Atmel, Infineon, ST, NXP, TI und vielen anderen lizenziert werden. Diese Hersteller ergänzen den Core um Speicher und Peripherie. Der Vorteil dieses Modells ist, dass dadurch sehr viele Prozessoren mit unterschiedlichster Ausstattung verfügbar sind, die alle mit dem selben Befehlssatz (und damit dem selben Compiler) programmierbar sind.&lt;br /&gt;
&lt;br /&gt;
Allen ARM-Cores gemeinsam ist die 32 Bit RISC-Architektur. Für diese gibt es den klassischen 32bit ARM Befehlssatz und den zusätzlichen, kleineren 16/32 Bit &#039;&#039;&#039;Thumb&#039;&#039;&#039;-Befehlssatz. Die verschiedenen Prozessoren/Controller unterstützen einen oder beide davon. Thumb-fähige Controller sind erkennbar am &#039;&#039;&#039;T&#039;&#039;&#039; in der Bezeichnung, z.&amp;amp;nbsp;B. ARM7&#039;&#039;&#039;T&#039;&#039;&#039;DMI. Thumb kodiert die meisten Instruktionen in 16bit, den Rest in 32bit, was in einem kleineren Prozessor und geringenem Platzbedarf des Codes resultiert [http://www.arm.com/files/pdf/ARM_Microcontroller_Code_Size_%28full%29.pdf]; der Nachteil ist die etwas niedrigere Geschwindigkeit. Die Cortex-M Kerne unterstützen ausschließlich den Thumb2-Befehlssatz.&lt;br /&gt;
&lt;br /&gt;
Seit einigen Jahren sind ARM-basierte Mikrocontroller erhältlich, die aufgrund der vergleichbar einfachen Beschaltung und niedrigem Stromverbrauch eine echte Alternative zu 8-Bit-Controllern wie dem [[AVR]] darstellen. Die ersten Controller mit diesen Eigenschaften verwendeten den ARM7TDMI-Kern (zB. LPC2000) (ARMv4T-Architektur). Mittlerweile wurden diese vom Cortex M-Kern abgelöst (ARMv6M, ARMv7M-Architektur), welcher in verschiedenen Varianten für verschiedene Einsatzzwecke verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In diesem Artikel geht es primär um die ARM Cortex-M Mikrocontroller, weniger um ARM [[Cortex-A]] Prozessoren, welche in Smartphones, [[Raspberry Pi]] u.ä. eingesetzt werden.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Varianten des Cortex-M Mikrocontroller-Kerns, aufgeführt vom energieeffizientesten zum leistungsfähigsten (Liste nicht unbedingt aktuell! Am besten immer die Herstellerseiten bemühen).&lt;br /&gt;
&lt;br /&gt;
sgdzg&lt;br /&gt;
&lt;br /&gt;
sdg&lt;br /&gt;
&lt;br /&gt;
sdahg&lt;br /&gt;
&lt;br /&gt;
fdhgfg&lt;br /&gt;
&lt;br /&gt;
sd&lt;br /&gt;
&lt;br /&gt;
sadd&lt;br /&gt;
&lt;br /&gt;
asd&lt;br /&gt;
&lt;br /&gt;
a&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Linksammlung#ARM|Linksammlung (Abschnitt ARM)]]&lt;br /&gt;
* [[LPC1xxx]]&lt;br /&gt;
* [[LPC1xxx_Entwicklungskit_LPCXpresso]]&lt;br /&gt;
* [[Installationsanleitung_C-Entwicklungsumgebung_f%C3%BCr_LPC1xxx_von_Code_Red]]&lt;br /&gt;
* [[Codebase_f%C3%BCr_LPC1xxx]]&lt;br /&gt;
* [[ARM-elf-GCC-Tutorial]]&lt;br /&gt;
* [[AVR32]]&lt;br /&gt;
* [[Blackfin]]&lt;br /&gt;
* [[AT91SAM9260]]&lt;br /&gt;
* [[STM32]]&lt;br /&gt;
* [[JTAG]]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 EFM32]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/STM32_-_Einstieg_mit_Em::Blocks STM32 - Einstieg mit Em::Blocks Tutorial]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.mySTM32.de Online Tutorial für den STM32]&lt;br /&gt;
* [http://www.myXMC.de Online Tutorial für den XMC von Infineon]&lt;br /&gt;
* [http://www.myUGL.de Online Tutorial für freie Grafikbibliothek, STM32, STM32F429, TFT, Touch]&lt;br /&gt;
* [http://embdev.net/forum/arm-gcc ARM-GCC Forum] im englischsprachigen &amp;quot;Ableger&amp;quot; von mikrocontroller.net embdev.net u.a. für WinARM, Yagarto, CS Codebench&lt;br /&gt;
* [http://www.arm.com/products/processors/cortex-m/index.php Cortex-M Produktseite von ARM]&lt;br /&gt;
* [http://infocenter.arm.com/help/index.jsp Infocenter von ARM Ltd.]&lt;br /&gt;
* [http://www.open-research.org.uk/ARMuC/ ARMuC ARM microcontroller Wiki]&lt;br /&gt;
* [http://chaosradio.ccc.de/cre151.html Chaosradio Express - Die ARM-Architektur]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
*ARM Systems Developer&#039;s Guide (2004) ISBN 1558608745 [http://books.google.de/books?id=HKKUkDQE17QC&amp;amp;output=html Im Buch blättern] [http://booksite.elsevier.com/9781558608740/ Programmbeispiele aus dem Buch, u.a. FFT, FIR/IIR-Filter, Division, Wurzel]&lt;br /&gt;
*ARM Assembly Language - an Introduction (2007) ISBN 1847536964 [http://books.google.de/books?id=8KJX5R8mMvsC&amp;amp;output=html Im Buch blättern]   [http://www.lulu.com/content/1172076 Verlagsseite &amp;quot;Book on demand&amp;quot;]&lt;br /&gt;
*ARM Rechnerarchitekturen für System-on-Chip-Design (2002) ISBN 3826608542&lt;br /&gt;
*Co-Verification of Hardware and Software for Arm Soc Design (2004) ISBN 0750677309&lt;br /&gt;
*ARM System-on-Chip Architecture (2000) ISBN 0201675196 [http://books.google.de/books?id=J_Fu_YTVD9gC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*ARM Architecture Reference Manual ISBN 0201737191 [http://books.google.de/books?id=O5G-6WX1xWsC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*Messen, Steuern und Regeln mit ARM-Mikrocontrollern ISBN 3772340172 [http://books.google.de/books?id=TKs4kN-zNYQC&amp;amp;output=html im Buch blättern]&lt;br /&gt;
*Programming Arm Microcontrollers: Using C and the Lpc2100 Family (2005? /ab 1. Dezember 2008) ISBN 0321263359&lt;br /&gt;
*Arm Assembly: Fundamentals and Techniques (ab 1. März 2009) ISBN 1439806101&lt;br /&gt;
*Reliable Embedded Systems: Using 8051 and ARM Microcontrollers (2007) ISBN 0321252918 600 Seiten mit CD [http://vig.pearsoned.co.uk/catalog/academic/product/0,1144,0321252918-TOC,00.html Inhaltsverzeichnis]&lt;br /&gt;
* C und C++ für Embedded Systems (u.a. ARM Cortex-M3) mitp-Verlag 2008 ISBN 382665949X&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M0 (Joseph Yiu) Newnes Verlag ISBN 0123854776&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M3 (Joseph Yiu) Newnes Verlag ISBN 185617963X&lt;br /&gt;
&lt;br /&gt;
== Artikel aus der Kategorie ARM ==&lt;br /&gt;
&amp;lt;ncl style=compact maxdepth=2 headings=bullet headstart=2&lt;br /&gt;
      showcats=1 showarts=1&amp;gt;ARM&amp;lt;/ncl&amp;gt;&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 &#039;&#039;&#039;EFM32&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/XMCxxxx &#039;&#039;&#039;Infineon XMCxxxx&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [https://www.mikrocontroller.net/articles/Cortex-A ARM Cortex A]&lt;br /&gt;
&lt;br /&gt;
[[Category:ARM| ]]&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94985</id>
		<title>ARM Cortex Mikrocontroller</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94985"/>
		<updated>2017-01-20T16:49:26Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Firma ARM stellt selbst keine Prozessoren/Controller her, sondern entwickelt nur sogenannte &amp;quot;IP-Cores&amp;quot;, die von Herstellern wie Atmel, Infineon, ST, NXP, TI und vielen anderen lizenziert werden. Diese Hersteller ergänzen den Core um Speicher und Peripherie. Der Vorteil dieses Modells ist, dass dadurch sehr viele Prozessoren mit unterschiedlichster Ausstattung verfügbar sind, die alle mit dem selben Befehlssatz (und damit dem selben Compiler) programmierbar sind.&lt;br /&gt;
&lt;br /&gt;
Allen ARM-Cores gemeinsam ist die 32 Bit RISC-Architektur. Für diese gibt es den klassischen 32bit ARM Befehlssatz und den zusätzlichen, kleineren 16/32 Bit &#039;&#039;&#039;Thumb&#039;&#039;&#039;-Befehlssatz. Die verschiedenen Prozessoren/Controller unterstützen einen oder beide davon. Thumb-fähige Controller sind erkennbar am &#039;&#039;&#039;T&#039;&#039;&#039; in der Bezeichnung, z.&amp;amp;nbsp;B. ARM7&#039;&#039;&#039;T&#039;&#039;&#039;DMI. Thumb kodiert die meisten Instruktionen in 16bit, den Rest in 32bit, was in einem kleineren Prozessor und geringenem Platzbedarf des Codes resultiert [http://www.arm.com/files/pdf/ARM_Microcontroller_Code_Size_%28full%29.pdf]; der Nachteil ist die etwas niedrigere Geschwindigkeit. Die Cortex-M Kerne unterstützen ausschließlich den Thumb2-Befehlssatz.&lt;br /&gt;
&lt;br /&gt;
Seit einigen Jahren sind ARM-basierte Mikrocontroller erhältlich, die aufgrund der vergleichbar einfachen Beschaltung und niedrigem Stromverbrauch eine echte Alternative zu 8-Bit-Controllern wie dem [[AVR]] darstellen. Die ersten Controller mit diesen Eigenschaften verwendeten den ARM7TDMI-Kern (zB. LPC2000) (ARMv4T-Architektur). Mittlerweile wurden diese vom Cortex M-Kern abgelöst (ARMv6M, ARMv7M-Architektur), welcher in verschiedenen Varianten für verschiedene Einsatzzwecke verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In diesem Artikel geht es primär um die ARM Cortex-M Mikrocontroller, weniger um ARM [[Cortex-A]] Prozessoren, welche in Smartphones, [[Raspberry Pi]] u.ä. eingesetzt werden.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Varianten des Cortex-M Mikrocontroller-Kerns, aufgeführt vom energieeffizientesten zum leistungsfähigsten (Liste nicht unbedingt aktuell! Am besten immer die Herstellerseiten bemühen).&lt;br /&gt;
&lt;br /&gt;
sgdzg&lt;br /&gt;
&lt;br /&gt;
sdg&lt;br /&gt;
&lt;br /&gt;
sdahg&lt;br /&gt;
&lt;br /&gt;
fdhgfg&lt;br /&gt;
&lt;br /&gt;
sd&lt;br /&gt;
&lt;br /&gt;
sadd&lt;br /&gt;
&lt;br /&gt;
asd&lt;br /&gt;
&lt;br /&gt;
== CMSIS - ARM Cortex Software Libraries  ==&lt;br /&gt;
 &lt;br /&gt;
Der ARM Cortex Microcontroller Software Interface Standard (CMSIS) ist ein herstellerunabhängiger Hardware Abstraction Layer für die Cortex-M-Prozessor -Serie. Dieser ermöglicht konsistente und einfache Software-Schnittstellen für den Prozessor und die Peripherie, und vereinfacht damit die Software-Wiederverwendung. &lt;br /&gt;
&lt;br /&gt;
CMSIS besteht aus folgenden Komponenten:&lt;br /&gt;
&lt;br /&gt;
* CMSIS-CORE: Bietet eine Schnittstelle zum Cortex-M0, Cortex-M3, Cortex-M4, SC000 und SC300-Prozessorkern und Peripherie-Registern.&lt;br /&gt;
* CMSIS-DSP: DSP-Bibliothek mit über 60 Funktionen in Festkomma-(fractional q7, q15, q31) und single precision floating-point (32-bit)-Implementierung&lt;br /&gt;
* CMSIS-RTOS API: Standardisierte Programmierschnittstelle für Echtzeit-Betriebssysteme für Thread-Steuerung, Ressourcen-und Zeitmanagement. Implementierungen gibt es z.B. von Keil ([http://www.keil.com/pack/doc/cmsis_rtx/index.html RTX])&lt;br /&gt;
* CMSIS-SVD: System View Beschreibung -  XML-Dateien, die die Programmiereransicht des kompletten Mikrocontroller-Systems einschließlich Peripheriegeräte enthalten&lt;br /&gt;
&lt;br /&gt;
Der Standard ist für Cortex-M-Mikrocontroller skalierbar: Von der  kleinsten 4 KB MCU bis zu MCUs mit anspruchsvoller Kommunikations-Peripherie wie Ethernet oder USB. Die &amp;quot;Core Peripheral Funktionen&amp;quot; benötigt beispielsweise weniger als 1 KB-Code und weniger als 10 Bytes RAM.&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* Software Beispiele von [http://www.energymicro.com/downloads/application-notes Energy Micro] basierend auf CMSIS&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen auf der [http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php ARM CMSIS Webseite].&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Linksammlung#ARM|Linksammlung (Abschnitt ARM)]]&lt;br /&gt;
* [[LPC1xxx]]&lt;br /&gt;
* [[LPC1xxx_Entwicklungskit_LPCXpresso]]&lt;br /&gt;
* [[Installationsanleitung_C-Entwicklungsumgebung_f%C3%BCr_LPC1xxx_von_Code_Red]]&lt;br /&gt;
* [[Codebase_f%C3%BCr_LPC1xxx]]&lt;br /&gt;
* [[ARM-elf-GCC-Tutorial]]&lt;br /&gt;
* [[AVR32]]&lt;br /&gt;
* [[Blackfin]]&lt;br /&gt;
* [[AT91SAM9260]]&lt;br /&gt;
* [[STM32]]&lt;br /&gt;
* [[JTAG]]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 EFM32]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/STM32_-_Einstieg_mit_Em::Blocks STM32 - Einstieg mit Em::Blocks Tutorial]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.mySTM32.de Online Tutorial für den STM32]&lt;br /&gt;
* [http://www.myXMC.de Online Tutorial für den XMC von Infineon]&lt;br /&gt;
* [http://www.myUGL.de Online Tutorial für freie Grafikbibliothek, STM32, STM32F429, TFT, Touch]&lt;br /&gt;
* [http://embdev.net/forum/arm-gcc ARM-GCC Forum] im englischsprachigen &amp;quot;Ableger&amp;quot; von mikrocontroller.net embdev.net u.a. für WinARM, Yagarto, CS Codebench&lt;br /&gt;
* [http://www.arm.com/products/processors/cortex-m/index.php Cortex-M Produktseite von ARM]&lt;br /&gt;
* [http://infocenter.arm.com/help/index.jsp Infocenter von ARM Ltd.]&lt;br /&gt;
* [http://www.open-research.org.uk/ARMuC/ ARMuC ARM microcontroller Wiki]&lt;br /&gt;
* [http://chaosradio.ccc.de/cre151.html Chaosradio Express - Die ARM-Architektur]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
*ARM Systems Developer&#039;s Guide (2004) ISBN 1558608745 [http://books.google.de/books?id=HKKUkDQE17QC&amp;amp;output=html Im Buch blättern] [http://booksite.elsevier.com/9781558608740/ Programmbeispiele aus dem Buch, u.a. FFT, FIR/IIR-Filter, Division, Wurzel]&lt;br /&gt;
*ARM Assembly Language - an Introduction (2007) ISBN 1847536964 [http://books.google.de/books?id=8KJX5R8mMvsC&amp;amp;output=html Im Buch blättern]   [http://www.lulu.com/content/1172076 Verlagsseite &amp;quot;Book on demand&amp;quot;]&lt;br /&gt;
*ARM Rechnerarchitekturen für System-on-Chip-Design (2002) ISBN 3826608542&lt;br /&gt;
*Co-Verification of Hardware and Software for Arm Soc Design (2004) ISBN 0750677309&lt;br /&gt;
*ARM System-on-Chip Architecture (2000) ISBN 0201675196 [http://books.google.de/books?id=J_Fu_YTVD9gC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*ARM Architecture Reference Manual ISBN 0201737191 [http://books.google.de/books?id=O5G-6WX1xWsC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*Messen, Steuern und Regeln mit ARM-Mikrocontrollern ISBN 3772340172 [http://books.google.de/books?id=TKs4kN-zNYQC&amp;amp;output=html im Buch blättern]&lt;br /&gt;
*Programming Arm Microcontrollers: Using C and the Lpc2100 Family (2005? /ab 1. Dezember 2008) ISBN 0321263359&lt;br /&gt;
*Arm Assembly: Fundamentals and Techniques (ab 1. März 2009) ISBN 1439806101&lt;br /&gt;
*Reliable Embedded Systems: Using 8051 and ARM Microcontrollers (2007) ISBN 0321252918 600 Seiten mit CD [http://vig.pearsoned.co.uk/catalog/academic/product/0,1144,0321252918-TOC,00.html Inhaltsverzeichnis]&lt;br /&gt;
* C und C++ für Embedded Systems (u.a. ARM Cortex-M3) mitp-Verlag 2008 ISBN 382665949X&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M0 (Joseph Yiu) Newnes Verlag ISBN 0123854776&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M3 (Joseph Yiu) Newnes Verlag ISBN 185617963X&lt;br /&gt;
&lt;br /&gt;
== Artikel aus der Kategorie ARM ==&lt;br /&gt;
&amp;lt;ncl style=compact maxdepth=2 headings=bullet headstart=2&lt;br /&gt;
      showcats=1 showarts=1&amp;gt;ARM&amp;lt;/ncl&amp;gt;&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 &#039;&#039;&#039;EFM32&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/XMCxxxx &#039;&#039;&#039;Infineon XMCxxxx&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [https://www.mikrocontroller.net/articles/Cortex-A ARM Cortex A]&lt;br /&gt;
&lt;br /&gt;
[[Category:ARM| ]]&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94984</id>
		<title>ARM Cortex Mikrocontroller</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94984"/>
		<updated>2017-01-20T16:49:20Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Firma ARM stellt selbst keine Prozessoren/Controller her, sondern entwickelt nur sogenannte &amp;quot;IP-Cores&amp;quot;, die von Herstellern wie Atmel, Infineon, ST, NXP, TI und vielen anderen lizenziert werden. Diese Hersteller ergänzen den Core um Speicher und Peripherie. Der Vorteil dieses Modells ist, dass dadurch sehr viele Prozessoren mit unterschiedlichster Ausstattung verfügbar sind, die alle mit dem selben Befehlssatz (und damit dem selben Compiler) programmierbar sind.&lt;br /&gt;
&lt;br /&gt;
Allen ARM-Cores gemeinsam ist die 32 Bit RISC-Architektur. Für diese gibt es den klassischen 32bit ARM Befehlssatz und den zusätzlichen, kleineren 16/32 Bit &#039;&#039;&#039;Thumb&#039;&#039;&#039;-Befehlssatz. Die verschiedenen Prozessoren/Controller unterstützen einen oder beide davon. Thumb-fähige Controller sind erkennbar am &#039;&#039;&#039;T&#039;&#039;&#039; in der Bezeichnung, z.&amp;amp;nbsp;B. ARM7&#039;&#039;&#039;T&#039;&#039;&#039;DMI. Thumb kodiert die meisten Instruktionen in 16bit, den Rest in 32bit, was in einem kleineren Prozessor und geringenem Platzbedarf des Codes resultiert [http://www.arm.com/files/pdf/ARM_Microcontroller_Code_Size_%28full%29.pdf]; der Nachteil ist die etwas niedrigere Geschwindigkeit. Die Cortex-M Kerne unterstützen ausschließlich den Thumb2-Befehlssatz.&lt;br /&gt;
&lt;br /&gt;
Seit einigen Jahren sind ARM-basierte Mikrocontroller erhältlich, die aufgrund der vergleichbar einfachen Beschaltung und niedrigem Stromverbrauch eine echte Alternative zu 8-Bit-Controllern wie dem [[AVR]] darstellen. Die ersten Controller mit diesen Eigenschaften verwendeten den ARM7TDMI-Kern (zB. LPC2000) (ARMv4T-Architektur). Mittlerweile wurden diese vom Cortex M-Kern abgelöst (ARMv6M, ARMv7M-Architektur), welcher in verschiedenen Varianten für verschiedene Einsatzzwecke verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In diesem Artikel geht es primär um die ARM Cortex-M Mikrocontroller, weniger um ARM [[Cortex-A]] Prozessoren, welche in Smartphones, [[Raspberry Pi]] u.ä. eingesetzt werden.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Varianten des Cortex-M Mikrocontroller-Kerns, aufgeführt vom energieeffizientesten zum leistungsfähigsten (Liste nicht unbedingt aktuell! Am besten immer die Herstellerseiten bemühen).&lt;br /&gt;
&lt;br /&gt;
sgdzg&lt;br /&gt;
&lt;br /&gt;
sdg&lt;br /&gt;
&lt;br /&gt;
sdahg&lt;br /&gt;
&lt;br /&gt;
fdhgfg&lt;br /&gt;
&lt;br /&gt;
sd&lt;br /&gt;
&lt;br /&gt;
sadd&lt;br /&gt;
&lt;br /&gt;
== Debug- und Programmierschnittstellen (JTAG/SWD) ==&lt;br /&gt;
&lt;br /&gt;
Alle ARM-basierten Prozessoren verwenden ein einheitliches [[JTAG]]-Interface, über das Debugging und Speicherzugriff erfolgen kann. Nicht standardisiert sind allerdings die Verfahren zum Beschreiben des Flash-ROMs. Deshalb muss man beachten, ob die verwendete JTAG-Software Programmierroutinen für den jeweiligen Controller besitzt.&lt;br /&gt;
&lt;br /&gt;
SWD (Serial Wire Debug) ist eine neue mit den Cortex-Mikrocontrollern eingeführte Debug- und Programmierschnittstelle, die weniger Pins benötigt als JTAG. Hier wird Debug-Bandbreite bzw. Speed gegen mehr verfügbare Pins für in-circuit Debugging &amp;quot;getauscht&amp;quot;. Die meisten Controller der Cortex-M0 &amp;amp; M3 Serie können sowohl mittels JTAG als auch mittels SWD programmiert werden, es gibt allerdings auch Exemplare (z.B. [[EFM32]] von [https://www.silabs.com Silicon Labs], XMC1100 von [http://www.infineon.com/xmc Infineon]) welche nur SWD unterstützen.&lt;br /&gt;
&lt;br /&gt;
Eine Übersicht über die empfohlenen Steckerbelegungen für JTAG und SWD gibt ein [http://infocenter.arm.com/help/topic/com.arm.doc.faqs/attached/13634/cortex_debug_connectors.pdf Dokument von ARM].&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus gibt es noch herstellerspezifische Schnittstellen wie SPD (Single Pin Debug) von Infineon, oder vorinstallierte serielle Bootloader, z.B. beim [[STM32]] oder auch bei den [[Infineon XMC]], die dann z.B. über ein eigenes [http://www.infineon.com/cms/de/product/microcontroller/development-tools-software-and-kits/c166/xc166-development-tools-software-and-kits/software-downloads/channel.html?channel=ff80808112ab681d0112ab6b50fe07c9 Tool] ohne weitere Hardware - abgesehen von einem handelsüblichen seriellen Schnittstellenadapter - programmiert werden können. &lt;br /&gt;
&lt;br /&gt;
Viele Entwicklungsboards enthalten auch einen On-Board-Debugadapter zum direkten Anschluss an USB, so dass kein externer SWD- oder JTAG-Adapter notwendig ist. Manche erlauben auch, diesen Adapter abzubrechen und für eigene Entwicklungen weiterzuverwenden, somit ist nach dem Kauf eines Eval-Kits nicht nötig, einen weiteren Adapter später nachzukaufen.&lt;br /&gt;
&lt;br /&gt;
=== Günstige Beispiele zum Einstieg ===&lt;br /&gt;
Ein einfacher JTAG-Adapter für den Parallelport ist der &amp;quot;Wiggler&amp;quot;-kompatible, den man auch einfach selbst bauen kann. Als Software lässt sich unter Windows und Linux [http://openocd.berlios.de/ OpenOCD] (zusammen mit [[GDB]]) oder [http://rowley.co.uk Crossworks ARM] verwenden.  Für USB gibt es ebenfalls OpenOCD-kompatible JTAG-Adapter.&lt;br /&gt;
&lt;br /&gt;
Von NXP sind preiswerte Entwicklungskits (ca. 25€ für Evaluation-Board incl. USB-JTAG-/-SWD-Programer und Debugger) erhältlich z.B. &#039;&#039;&#039;[http://www.watterott.com/index.php?page=search&amp;amp;keywords=LPCXpresso&amp;amp;cat=&amp;amp;mnf=&amp;amp;x=0&amp;amp;y=0 Watterott]&#039;&#039;&#039;. Siehe dazu auch die Dokumentation von NXP zu den &#039;&#039;&#039;[http://www.nxp.com/documents/leaflet/75016842.pdf LPCXpresso-Entwicklungskits]&#039;&#039;&#039; (PDF), oder diese &#039;&#039;&#039;[http://www.mikrocontroller.net/wikisoftware/index.php?title=LPC1xxx_Entwicklungskit_LPCXpresso Beschreibung]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Von ST gibt es günstige MBED/Arduino kompatible Nucleo Entwicklungskits (ca. 12€) z.B. &#039;&#039;&#039;[http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1847/PF260320?s_searchtype=partnumber]&#039;&#039;&#039;. Der integrierte ST-Link Debugger kann mittels SWD und OpenOCD als Software auch andere Chip programmieren. Die etwas teuereren Discoveryboards, z.B. &#039;&#039;&#039;[http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF260946?s_searchtype=partnumber]&#039;&#039;&#039;, haben mehr externe Bauteile on-board, während die Nucleo Board über Shields erweiterbar sind. Nur bei Nucleo Boards ist eine UART Schnittstelle als Standard über USB zu erreichen, bei Discovery Boards mit ST-Link V2-1 müssen Lötbrücken gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Auch Infineon bietet Arduino-kompatible Boards+Shields mit dem XMC1100 Prozessor und angeflanschtem Debugger an (ab ca. 16€). Weiters gibt es günstige XMC4500 Kits, die auch Ethernet, SPI-Flash und SDCard-Slot Optionen bieten. Am unteren Ende gibt es ein XMC1100 Kit samt Debugger ab ca. 5€, dieses Board für den Schlüsselbund sozusagen nennt sich treffend &amp;quot;XMC 2 Go&amp;quot;. Die Preise können je nach Distributor stark variieren.&lt;br /&gt;
Siehe auch hier &#039;&#039;&#039;[http://www.infineon.com/cms/de/product/microcontroller/32-bit-industrial-microcontroller-based-on-arm-registered-cortex-registered-m/xmc-development-tools-kits-and-boards/channel.html?channel=db3a30433580b3710135a07902883872 XMC-Starter-Kits]&#039;&#039;&#039;.&lt;br /&gt;
Des weiteren werden auch schon Kits in Verbindung mit Sensoren zum Evaluieren angeboten, wie das &amp;quot;3D 2 Go&amp;quot; Board mit einem XMC1100 Prozessor und dem neuen 3D-Magnetfeldsensor von Infineon, um ein Beispiel zu nennen: &#039;&#039;&#039;[http://www.infineon.com/cms/en/product/sensor-ics/magnetic-sensors/3d-magnetic-sensor/channel.html?channel=5546d4624c9e0f0e014c9e105a8a001c 3D-Sensorkit]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Von Silicon Labs gibt es [https://www.silabs.com/products/mcu/Pages/32-bit-microcontroller-tools.aspx Starter Kits] mit integriertem J-Link (Debugger) ab ca. 25 € z.B. das [https://www.silabs.com/products/mcu/lowpower/Pages/efm32tg-stk3300.aspx EFM32 Tiny Gecko Starter Kit] bei [http://www.mouser.de/ProductDetail/Silicon-Laboratories/EFM32TG-STK3300/?qs=%2fha2pyFadujBGJvO8YBq9JikBLXQGi%2fjwmF17imXuts5383tWpQKFA%3d%3d Mouser]&lt;br /&gt;
&lt;br /&gt;
Der [http://www.segger.com/cms/jlink.html J-Link]-&amp;quot;Emulator&amp;quot; von Segger wird von vielen Softwarepaketen unterstützt und ist für den &amp;quot;nicht-kommerziellen&amp;quot; Einsatz von Studenten, Funkamateuren und Hobby-Bastler für ca. €50.- erhältlich (J-Link-Edu). Sein Umfang ist auf das Flashen des Speichers und das Debuggen beschränkt. Bonus: Neben den im Prozessor limitiert vorhandenen Hardware-Breakpoints (Anzahl ist MCU abhängig) sind zusätzliche Flash-Breakpoints möglich (müssen aber von der verwendeten Debug-IDE unterstüzt werden). Die sehr gut geplegte Debugger-Software unterstützt nahezu alle ARM Prozessoren. Die Trace-Option wie sie bei der PRO-Variante zur Verfügung steht, ist nicht vorhanden. Für den Preis bekommt man jedoch ein ausgewachsenes Werkzeug mit breiter Unterstützung und der Möglichkeit sowohl SWD als auch JTAG in einem Gerät vereint zu haben. Wenn man aber plant, ein oben genanntes Kit von ST, NXP, Infineon oder ähnlich zu kaufen kann man für ähnliche Kosten auch gleich ein CPU-Board dazubekommen - daher ist es sinnvoll, sich die Dokumentationen der Evalkits voher genau durchzusehen. &lt;br /&gt;
&lt;br /&gt;
Der ULINK2 von Keil/ARM ist ebenfalls ein wirklich gutes Gerät. Leider ist er nicht ganz so günstig und seine Zusammenarbeit beschränkt sich auf die Arm/Keil IDE µVision. Er benötigt jedoch keine speziellen USB-Treiber sondern nutzt geschickt die Funktionalität der HID-Treiber des Betriebssystems. Das macht ihn sofort auf jedem Windows-Betriebssystem einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
Als Alternative zum Beschreiben des Flash über JTAG ist oft ein serieller [[Bootloader]] im Controller enthalten. Bei ST werden sie über einen speziellen Pin der MPU aktiviert und sind dank Kompression und das intelligente entfernen redundanter Information, bei der Übertragung genauso schnell wie JTAG/SWD Adapter.&lt;br /&gt;
&lt;br /&gt;
== CMSIS - ARM Cortex Software Libraries  ==&lt;br /&gt;
 &lt;br /&gt;
Der ARM Cortex Microcontroller Software Interface Standard (CMSIS) ist ein herstellerunabhängiger Hardware Abstraction Layer für die Cortex-M-Prozessor -Serie. Dieser ermöglicht konsistente und einfache Software-Schnittstellen für den Prozessor und die Peripherie, und vereinfacht damit die Software-Wiederverwendung. &lt;br /&gt;
&lt;br /&gt;
CMSIS besteht aus folgenden Komponenten:&lt;br /&gt;
&lt;br /&gt;
* CMSIS-CORE: Bietet eine Schnittstelle zum Cortex-M0, Cortex-M3, Cortex-M4, SC000 und SC300-Prozessorkern und Peripherie-Registern.&lt;br /&gt;
* CMSIS-DSP: DSP-Bibliothek mit über 60 Funktionen in Festkomma-(fractional q7, q15, q31) und single precision floating-point (32-bit)-Implementierung&lt;br /&gt;
* CMSIS-RTOS API: Standardisierte Programmierschnittstelle für Echtzeit-Betriebssysteme für Thread-Steuerung, Ressourcen-und Zeitmanagement. Implementierungen gibt es z.B. von Keil ([http://www.keil.com/pack/doc/cmsis_rtx/index.html RTX])&lt;br /&gt;
* CMSIS-SVD: System View Beschreibung -  XML-Dateien, die die Programmiereransicht des kompletten Mikrocontroller-Systems einschließlich Peripheriegeräte enthalten&lt;br /&gt;
&lt;br /&gt;
Der Standard ist für Cortex-M-Mikrocontroller skalierbar: Von der  kleinsten 4 KB MCU bis zu MCUs mit anspruchsvoller Kommunikations-Peripherie wie Ethernet oder USB. Die &amp;quot;Core Peripheral Funktionen&amp;quot; benötigt beispielsweise weniger als 1 KB-Code und weniger als 10 Bytes RAM.&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* Software Beispiele von [http://www.energymicro.com/downloads/application-notes Energy Micro] basierend auf CMSIS&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen auf der [http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php ARM CMSIS Webseite].&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Linksammlung#ARM|Linksammlung (Abschnitt ARM)]]&lt;br /&gt;
* [[LPC1xxx]]&lt;br /&gt;
* [[LPC1xxx_Entwicklungskit_LPCXpresso]]&lt;br /&gt;
* [[Installationsanleitung_C-Entwicklungsumgebung_f%C3%BCr_LPC1xxx_von_Code_Red]]&lt;br /&gt;
* [[Codebase_f%C3%BCr_LPC1xxx]]&lt;br /&gt;
* [[ARM-elf-GCC-Tutorial]]&lt;br /&gt;
* [[AVR32]]&lt;br /&gt;
* [[Blackfin]]&lt;br /&gt;
* [[AT91SAM9260]]&lt;br /&gt;
* [[STM32]]&lt;br /&gt;
* [[JTAG]]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 EFM32]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/STM32_-_Einstieg_mit_Em::Blocks STM32 - Einstieg mit Em::Blocks Tutorial]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.mySTM32.de Online Tutorial für den STM32]&lt;br /&gt;
* [http://www.myXMC.de Online Tutorial für den XMC von Infineon]&lt;br /&gt;
* [http://www.myUGL.de Online Tutorial für freie Grafikbibliothek, STM32, STM32F429, TFT, Touch]&lt;br /&gt;
* [http://embdev.net/forum/arm-gcc ARM-GCC Forum] im englischsprachigen &amp;quot;Ableger&amp;quot; von mikrocontroller.net embdev.net u.a. für WinARM, Yagarto, CS Codebench&lt;br /&gt;
* [http://www.arm.com/products/processors/cortex-m/index.php Cortex-M Produktseite von ARM]&lt;br /&gt;
* [http://infocenter.arm.com/help/index.jsp Infocenter von ARM Ltd.]&lt;br /&gt;
* [http://www.open-research.org.uk/ARMuC/ ARMuC ARM microcontroller Wiki]&lt;br /&gt;
* [http://chaosradio.ccc.de/cre151.html Chaosradio Express - Die ARM-Architektur]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
*ARM Systems Developer&#039;s Guide (2004) ISBN 1558608745 [http://books.google.de/books?id=HKKUkDQE17QC&amp;amp;output=html Im Buch blättern] [http://booksite.elsevier.com/9781558608740/ Programmbeispiele aus dem Buch, u.a. FFT, FIR/IIR-Filter, Division, Wurzel]&lt;br /&gt;
*ARM Assembly Language - an Introduction (2007) ISBN 1847536964 [http://books.google.de/books?id=8KJX5R8mMvsC&amp;amp;output=html Im Buch blättern]   [http://www.lulu.com/content/1172076 Verlagsseite &amp;quot;Book on demand&amp;quot;]&lt;br /&gt;
*ARM Rechnerarchitekturen für System-on-Chip-Design (2002) ISBN 3826608542&lt;br /&gt;
*Co-Verification of Hardware and Software for Arm Soc Design (2004) ISBN 0750677309&lt;br /&gt;
*ARM System-on-Chip Architecture (2000) ISBN 0201675196 [http://books.google.de/books?id=J_Fu_YTVD9gC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*ARM Architecture Reference Manual ISBN 0201737191 [http://books.google.de/books?id=O5G-6WX1xWsC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*Messen, Steuern und Regeln mit ARM-Mikrocontrollern ISBN 3772340172 [http://books.google.de/books?id=TKs4kN-zNYQC&amp;amp;output=html im Buch blättern]&lt;br /&gt;
*Programming Arm Microcontrollers: Using C and the Lpc2100 Family (2005? /ab 1. Dezember 2008) ISBN 0321263359&lt;br /&gt;
*Arm Assembly: Fundamentals and Techniques (ab 1. März 2009) ISBN 1439806101&lt;br /&gt;
*Reliable Embedded Systems: Using 8051 and ARM Microcontrollers (2007) ISBN 0321252918 600 Seiten mit CD [http://vig.pearsoned.co.uk/catalog/academic/product/0,1144,0321252918-TOC,00.html Inhaltsverzeichnis]&lt;br /&gt;
* C und C++ für Embedded Systems (u.a. ARM Cortex-M3) mitp-Verlag 2008 ISBN 382665949X&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M0 (Joseph Yiu) Newnes Verlag ISBN 0123854776&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M3 (Joseph Yiu) Newnes Verlag ISBN 185617963X&lt;br /&gt;
&lt;br /&gt;
== Artikel aus der Kategorie ARM ==&lt;br /&gt;
&amp;lt;ncl style=compact maxdepth=2 headings=bullet headstart=2&lt;br /&gt;
      showcats=1 showarts=1&amp;gt;ARM&amp;lt;/ncl&amp;gt;&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 &#039;&#039;&#039;EFM32&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/XMCxxxx &#039;&#039;&#039;Infineon XMCxxxx&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [https://www.mikrocontroller.net/articles/Cortex-A ARM Cortex A]&lt;br /&gt;
&lt;br /&gt;
[[Category:ARM| ]]&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94983</id>
		<title>ARM Cortex Mikrocontroller</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94983"/>
		<updated>2017-01-20T16:49:14Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Firma ARM stellt selbst keine Prozessoren/Controller her, sondern entwickelt nur sogenannte &amp;quot;IP-Cores&amp;quot;, die von Herstellern wie Atmel, Infineon, ST, NXP, TI und vielen anderen lizenziert werden. Diese Hersteller ergänzen den Core um Speicher und Peripherie. Der Vorteil dieses Modells ist, dass dadurch sehr viele Prozessoren mit unterschiedlichster Ausstattung verfügbar sind, die alle mit dem selben Befehlssatz (und damit dem selben Compiler) programmierbar sind.&lt;br /&gt;
&lt;br /&gt;
Allen ARM-Cores gemeinsam ist die 32 Bit RISC-Architektur. Für diese gibt es den klassischen 32bit ARM Befehlssatz und den zusätzlichen, kleineren 16/32 Bit &#039;&#039;&#039;Thumb&#039;&#039;&#039;-Befehlssatz. Die verschiedenen Prozessoren/Controller unterstützen einen oder beide davon. Thumb-fähige Controller sind erkennbar am &#039;&#039;&#039;T&#039;&#039;&#039; in der Bezeichnung, z.&amp;amp;nbsp;B. ARM7&#039;&#039;&#039;T&#039;&#039;&#039;DMI. Thumb kodiert die meisten Instruktionen in 16bit, den Rest in 32bit, was in einem kleineren Prozessor und geringenem Platzbedarf des Codes resultiert [http://www.arm.com/files/pdf/ARM_Microcontroller_Code_Size_%28full%29.pdf]; der Nachteil ist die etwas niedrigere Geschwindigkeit. Die Cortex-M Kerne unterstützen ausschließlich den Thumb2-Befehlssatz.&lt;br /&gt;
&lt;br /&gt;
Seit einigen Jahren sind ARM-basierte Mikrocontroller erhältlich, die aufgrund der vergleichbar einfachen Beschaltung und niedrigem Stromverbrauch eine echte Alternative zu 8-Bit-Controllern wie dem [[AVR]] darstellen. Die ersten Controller mit diesen Eigenschaften verwendeten den ARM7TDMI-Kern (zB. LPC2000) (ARMv4T-Architektur). Mittlerweile wurden diese vom Cortex M-Kern abgelöst (ARMv6M, ARMv7M-Architektur), welcher in verschiedenen Varianten für verschiedene Einsatzzwecke verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In diesem Artikel geht es primär um die ARM Cortex-M Mikrocontroller, weniger um ARM [[Cortex-A]] Prozessoren, welche in Smartphones, [[Raspberry Pi]] u.ä. eingesetzt werden.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Varianten des Cortex-M Mikrocontroller-Kerns, aufgeführt vom energieeffizientesten zum leistungsfähigsten (Liste nicht unbedingt aktuell! Am besten immer die Herstellerseiten bemühen).&lt;br /&gt;
&lt;br /&gt;
sgdzg&lt;br /&gt;
&lt;br /&gt;
sdg&lt;br /&gt;
&lt;br /&gt;
sdahg&lt;br /&gt;
&lt;br /&gt;
fdhgfg&lt;br /&gt;
&lt;br /&gt;
sd&lt;br /&gt;
&lt;br /&gt;
== Compiler &amp;amp; Software ==&lt;br /&gt;
&lt;br /&gt;
 sd&lt;br /&gt;
&lt;br /&gt;
=== C/C++ IDEs ===&lt;br /&gt;
Kostenlose Entwicklungsumgebungen (überwiegend GCC-basiert):&lt;br /&gt;
* [http://www.coocox.org/software.html CooCox IDE] (Eclipse basierend)&lt;br /&gt;
* [https://gnuarmeclipse.github.io GNU ARM Eclipse] (Eclipse Plugin)&lt;br /&gt;
* [http://www.emblocks.org/web/ EmBlocks IDE] (Basiert auf Code::Blocks)&lt;br /&gt;
** Compiler: GNU ARM-GCC (in der Installation enthalten), RealView und IAR &lt;br /&gt;
** Hardware: STlink (mit &amp;quot;Live data&amp;quot;), openOCD, Jlink. &lt;br /&gt;
** Project Import: CoIDE, uVision, Atmel studio, MplabX, Mplab 8&lt;br /&gt;
** OS aware debugging &lt;br /&gt;
***FreeRTOS&lt;br /&gt;
***ChibiOS/RT  &lt;br /&gt;
** Unterstützt sehr viele Controller(-Hersteller):&lt;br /&gt;
***Atmel-ARM&lt;br /&gt;
***NXP-ARM&lt;br /&gt;
***STMicro-ARM&lt;br /&gt;
***EnergyMicro-ARM&lt;br /&gt;
**Keine Beschränkungen&lt;br /&gt;
**Hier gehts zum &#039;&#039;[http://www.emblocks.org/web/downloads-main Download]&#039;&#039;&#039;&lt;br /&gt;
* [http://www.emide.org/ emIDE] Windows, komplette Visual Studio artige Entwicklungsumgebung (basierend auf Code::Blocks) mit GCC und Debugger (Unterstützung für Adapter von Segger) &amp;lt;!-- Projekt eines Segger Mitarbeiters --&amp;gt;&lt;br /&gt;
* [https://mbed.org mbed]: eine kostenlose Online-Entwicklungsumgebung basierend auf dem ARM Realview-Compiler, mit einer umfangreichen C++-Bibliothek für die Controllerfunktionen, integrierter Versionsverwaltung, und vielen Beispielprogrammen. Projekte lassen sich für Keil/IAR/GCC exportieren und offline weiterbearbeiten; die Bibliotheksfunktionen sind Open Source und auch kommerziell einsetzbar.&lt;br /&gt;
* [http://www.isystem.com/products/software/winidea-open winIDEAOpen]Die Fa. iSystem stellt mit der winIDEAOpen nun eine kostenlose Entwicklungsumgebung für alle Cortex-M Bauteile zur Verfügung. Als Compiler wird der GNU GCC verwendet und auch gleich mitinstalliert. Die IDE ist recht intuitiv und mit einer umfangreichen Hilfe ausgestattet. Das Ganze funktioniert mit dem &amp;lt;u&amp;gt;GCC ohne Codesize Limit&amp;lt;/u&amp;gt; und auch ein Testwerkzeug (testIDEA) ist mit integriert. Hardwareseitig werden neben dem iSystem iTag50 [http://www.isystem.com/products/hardware/cortex-debugger/itag] auch die Segger J-Link Debug Probes sowie der ST-Link von ST unterstützt. Auf der Webseite von iSystem sind auch einige schöne Beispielprojekte für diverse Boards zu finden [http://www.isystem.com/download/winideaopen]. Demnächst soll noch die Unterstützung für die ARM und IAR Compiler hinzuzkommen. Hier gehts zum &#039;&#039;[http://www.isystem.com/download/winideaopen Download]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Infineon&#039;&#039;&#039; bietet für seine &#039;&#039;&#039;XMC&#039;&#039;&#039; Prozessorfamilien auch eine kostenlose, professionell gepflegte C/C++ Entwicklungsumgebung an, ohne Einschränkungen auf bestimmte Typen oder Speichergrößen - &amp;lt;u&amp;gt;alle erhältlichen XMC 1000er und 4000er Prozessoren werden unterstützt&amp;lt;/u&amp;gt;. Wenn man sich dazu noch eines der günstigen XMC Evaluierungsboards besorgt (XMC 1100 Bootkit, XMC 4500 Relax (lite) Kit o.ä.), hat man ein erstes Entwicklungssystem inklusive wiederverwendbaren HW-Debugger zur Verfügung. Die Entwicklungsumgebung basiert auf Eclipse, besitzt aber zahlreiche Erweiterungen samt Codegenerierung (sogenannte Apps), die gerade am Anfang viele Dinge abnehmen kann, da man die Peripherals damit einfach grafisch konfigurieren kann. Das ist bei Prozessoren, dessen User Manual einige hundert Seiten ausmacht (oder auch für Umsteiger von 8bitter oder anderen 32bittern), nicht unwichtig. Der generierte Code ist template-basiert, gut lesbar und kann später - wenn man mehr Erfahrung hat, für eigene Entwicklungen weiter nutzen und optimieren. Damit verliert man dann allerdings die Möglichkeit, Updates der generierten Codes aus den Apps zu bekommen, die Infineon ebenfalls kostenfrei zur Verfügung stellt. Die Software nennt sich &#039;&#039;Digital Application Virtual Engineer&#039;&#039; ([http://www.infineon.com/dave DAVE]) und kann nach Registrierung kostenlos für Windows heruntergeladen werden. Innerhalb von Dave kann man dann Apps und viele Beispiele (ohne weitere Anmeldung und Kosten) komplett oder selektiv (für bestimmte Prozessoren) herunterladen. Die aktuell stabile Version ist v3. Es ist eine neue DAVE Umgebung v4 in Arbeit, eine Betaversion kann heruntergeladen werden. Diese neue v4 Variante wird auch ein separates SDK besitzen, um Apps für Dave selbst schreiben zu können (z.B. Bauteilhersteller, die die Anbindung an den XMC für Kunden vereinfachen wollen). Einsteiger sollten aber mit v3 beginnen, um nicht über Bugs der Beta v4 zu stolpern (siehe auch im [http://www.infineonforums.com/forums/8-XMC-Forum XMC-Forum]).&lt;br /&gt;
* &#039;&#039;&#039;NXP&#039;&#039;&#039; bietet für seine &#039;&#039;&#039;LPC&#039;&#039;&#039; Prozessorfamilien eine &amp;lt;u&amp;gt;kostenlose&amp;lt;/u&amp;gt; C/C++ Entwicklungsumgebung an. Die auf Eclipse basierende Entwicklungsumgebung ([http://www.lpcware.com/lpcxpresso LPCXpresso]) ist nach der Installation bis 8kB freigeschaltet und nach einer einfachen und kostenlosen Registrierung für 256kB. [http://www.lpcware.com/lpcxpresso LPCXpresso] steht für Windows, Linux und Mac zur Verfügung.&lt;br /&gt;
* &#039;&#039;&#039;ST&#039;&#039;&#039; bietet für seine &#039;&#039;&#039;STM32&#039;&#039;&#039; Prozessorfamilie eine &amp;lt;u&amp;gt;kostenlose&amp;lt;/u&amp;gt; C/C++ Entwicklungsumgebung an. Die auf Eclipse basierende Entwicklungsumgebung kann nach Registrierung auf der Homepage heruntergeladen werden. [http://www.openstm32.org/] &lt;br /&gt;
&lt;br /&gt;
Kommerzielle Entwicklungsumgebungen (zum Teil kostenlos mit Einschränkungen) für ARM-basierte Mikrocontroller sind z.&amp;amp;nbsp;B.:&lt;br /&gt;
* [http://timor.atollic.com/truestudio/ Atollic TrueStudio] (Windows), Eclipse-basierend inkl. Compiler und Linker für fast alle ARMs, jetzt auch kostenlos mit vielen Beispielen und ohne Codesize-Limitierung, dafür mit anderen Einschränkungen&lt;br /&gt;
* [http://www.cosmicsoftware.com/download_cortex_64k.php Cosmic Software] (Windows), bis 64kB kostenlos&lt;br /&gt;
* [http://rowley.co.uk/arm/ Crossworks ARM] (inkl. Toolchains basierend auf GCC und Clang, für Windows, Mac OS und Linux)&lt;br /&gt;
* [http://www.iar.com/ewarm/ IAR Embedded Workbench for ARM] (Windows)&lt;br /&gt;
* [http://www.keil.com/arm/ MDK-ARM von Keil/ARM] (Windows), Lite-Version bis 32kB kostenlos,&lt;br /&gt;
* [http://www2.keil.com/stmicroelectronics-stm32/mdk MDK-STM32 von KEIL] Speziell für STM32x0 kostenlos ohne Beschränkung &lt;br /&gt;
* [http://www.sisy.de/ SiSy MC++] (Windows), Demo-Version, keine Code-Begrenzung&lt;br /&gt;
&lt;br /&gt;
=== Compiler für sonstige Programmiersprachen ===&lt;br /&gt;
* Basic: http://www.mikroe.com/mikrobasic/arm/&lt;br /&gt;
* Pascal: http://www.mikroe.com/mikropascal/arm/&lt;br /&gt;
&lt;br /&gt;
=== Interpreter ===&lt;br /&gt;
* Forth: https://github.com/ekoeppen/CoreForth&lt;br /&gt;
* JavaScript: http://www.espruino.com/&lt;br /&gt;
* Lua: http://www.eluaproject.net/&lt;br /&gt;
&lt;br /&gt;
=== ARM/XSCALE/CORTEX Instruction Set Simulator ===&lt;br /&gt;
Die Firma Lauterbach bietet unter der Artikelnummer LA-8809 einen Instruction Set Simulator für ARM Cores an. Die Demoversion ist zur Evaluierung kostenlos. Einschränkungen bestehen in der Anzahl der zu ladenden Debugsymbole. Der Simulator unterstützt alle gängigen ARM Derivate und lädt alle üblichen Debugformate, wie die des RealView,  IAR und TI Compilers, oder der freien GCC Tools. Zum Simulator gibt es entsprechende zugehörige Debugtools, die allerdings käuflich zu erwerben sind.&lt;br /&gt;
&lt;br /&gt;
* [http://www.lauterbach.com/frames.html?dwnload.html Download ARM/XSCALE/CORTEX Simulator]&lt;br /&gt;
&lt;br /&gt;
== Debug- und Programmierschnittstellen (JTAG/SWD) ==&lt;br /&gt;
&lt;br /&gt;
Alle ARM-basierten Prozessoren verwenden ein einheitliches [[JTAG]]-Interface, über das Debugging und Speicherzugriff erfolgen kann. Nicht standardisiert sind allerdings die Verfahren zum Beschreiben des Flash-ROMs. Deshalb muss man beachten, ob die verwendete JTAG-Software Programmierroutinen für den jeweiligen Controller besitzt.&lt;br /&gt;
&lt;br /&gt;
SWD (Serial Wire Debug) ist eine neue mit den Cortex-Mikrocontrollern eingeführte Debug- und Programmierschnittstelle, die weniger Pins benötigt als JTAG. Hier wird Debug-Bandbreite bzw. Speed gegen mehr verfügbare Pins für in-circuit Debugging &amp;quot;getauscht&amp;quot;. Die meisten Controller der Cortex-M0 &amp;amp; M3 Serie können sowohl mittels JTAG als auch mittels SWD programmiert werden, es gibt allerdings auch Exemplare (z.B. [[EFM32]] von [https://www.silabs.com Silicon Labs], XMC1100 von [http://www.infineon.com/xmc Infineon]) welche nur SWD unterstützen.&lt;br /&gt;
&lt;br /&gt;
Eine Übersicht über die empfohlenen Steckerbelegungen für JTAG und SWD gibt ein [http://infocenter.arm.com/help/topic/com.arm.doc.faqs/attached/13634/cortex_debug_connectors.pdf Dokument von ARM].&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus gibt es noch herstellerspezifische Schnittstellen wie SPD (Single Pin Debug) von Infineon, oder vorinstallierte serielle Bootloader, z.B. beim [[STM32]] oder auch bei den [[Infineon XMC]], die dann z.B. über ein eigenes [http://www.infineon.com/cms/de/product/microcontroller/development-tools-software-and-kits/c166/xc166-development-tools-software-and-kits/software-downloads/channel.html?channel=ff80808112ab681d0112ab6b50fe07c9 Tool] ohne weitere Hardware - abgesehen von einem handelsüblichen seriellen Schnittstellenadapter - programmiert werden können. &lt;br /&gt;
&lt;br /&gt;
Viele Entwicklungsboards enthalten auch einen On-Board-Debugadapter zum direkten Anschluss an USB, so dass kein externer SWD- oder JTAG-Adapter notwendig ist. Manche erlauben auch, diesen Adapter abzubrechen und für eigene Entwicklungen weiterzuverwenden, somit ist nach dem Kauf eines Eval-Kits nicht nötig, einen weiteren Adapter später nachzukaufen.&lt;br /&gt;
&lt;br /&gt;
=== Günstige Beispiele zum Einstieg ===&lt;br /&gt;
Ein einfacher JTAG-Adapter für den Parallelport ist der &amp;quot;Wiggler&amp;quot;-kompatible, den man auch einfach selbst bauen kann. Als Software lässt sich unter Windows und Linux [http://openocd.berlios.de/ OpenOCD] (zusammen mit [[GDB]]) oder [http://rowley.co.uk Crossworks ARM] verwenden.  Für USB gibt es ebenfalls OpenOCD-kompatible JTAG-Adapter.&lt;br /&gt;
&lt;br /&gt;
Von NXP sind preiswerte Entwicklungskits (ca. 25€ für Evaluation-Board incl. USB-JTAG-/-SWD-Programer und Debugger) erhältlich z.B. &#039;&#039;&#039;[http://www.watterott.com/index.php?page=search&amp;amp;keywords=LPCXpresso&amp;amp;cat=&amp;amp;mnf=&amp;amp;x=0&amp;amp;y=0 Watterott]&#039;&#039;&#039;. Siehe dazu auch die Dokumentation von NXP zu den &#039;&#039;&#039;[http://www.nxp.com/documents/leaflet/75016842.pdf LPCXpresso-Entwicklungskits]&#039;&#039;&#039; (PDF), oder diese &#039;&#039;&#039;[http://www.mikrocontroller.net/wikisoftware/index.php?title=LPC1xxx_Entwicklungskit_LPCXpresso Beschreibung]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Von ST gibt es günstige MBED/Arduino kompatible Nucleo Entwicklungskits (ca. 12€) z.B. &#039;&#039;&#039;[http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1847/PF260320?s_searchtype=partnumber]&#039;&#039;&#039;. Der integrierte ST-Link Debugger kann mittels SWD und OpenOCD als Software auch andere Chip programmieren. Die etwas teuereren Discoveryboards, z.B. &#039;&#039;&#039;[http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF260946?s_searchtype=partnumber]&#039;&#039;&#039;, haben mehr externe Bauteile on-board, während die Nucleo Board über Shields erweiterbar sind. Nur bei Nucleo Boards ist eine UART Schnittstelle als Standard über USB zu erreichen, bei Discovery Boards mit ST-Link V2-1 müssen Lötbrücken gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Auch Infineon bietet Arduino-kompatible Boards+Shields mit dem XMC1100 Prozessor und angeflanschtem Debugger an (ab ca. 16€). Weiters gibt es günstige XMC4500 Kits, die auch Ethernet, SPI-Flash und SDCard-Slot Optionen bieten. Am unteren Ende gibt es ein XMC1100 Kit samt Debugger ab ca. 5€, dieses Board für den Schlüsselbund sozusagen nennt sich treffend &amp;quot;XMC 2 Go&amp;quot;. Die Preise können je nach Distributor stark variieren.&lt;br /&gt;
Siehe auch hier &#039;&#039;&#039;[http://www.infineon.com/cms/de/product/microcontroller/32-bit-industrial-microcontroller-based-on-arm-registered-cortex-registered-m/xmc-development-tools-kits-and-boards/channel.html?channel=db3a30433580b3710135a07902883872 XMC-Starter-Kits]&#039;&#039;&#039;.&lt;br /&gt;
Des weiteren werden auch schon Kits in Verbindung mit Sensoren zum Evaluieren angeboten, wie das &amp;quot;3D 2 Go&amp;quot; Board mit einem XMC1100 Prozessor und dem neuen 3D-Magnetfeldsensor von Infineon, um ein Beispiel zu nennen: &#039;&#039;&#039;[http://www.infineon.com/cms/en/product/sensor-ics/magnetic-sensors/3d-magnetic-sensor/channel.html?channel=5546d4624c9e0f0e014c9e105a8a001c 3D-Sensorkit]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Von Silicon Labs gibt es [https://www.silabs.com/products/mcu/Pages/32-bit-microcontroller-tools.aspx Starter Kits] mit integriertem J-Link (Debugger) ab ca. 25 € z.B. das [https://www.silabs.com/products/mcu/lowpower/Pages/efm32tg-stk3300.aspx EFM32 Tiny Gecko Starter Kit] bei [http://www.mouser.de/ProductDetail/Silicon-Laboratories/EFM32TG-STK3300/?qs=%2fha2pyFadujBGJvO8YBq9JikBLXQGi%2fjwmF17imXuts5383tWpQKFA%3d%3d Mouser]&lt;br /&gt;
&lt;br /&gt;
Der [http://www.segger.com/cms/jlink.html J-Link]-&amp;quot;Emulator&amp;quot; von Segger wird von vielen Softwarepaketen unterstützt und ist für den &amp;quot;nicht-kommerziellen&amp;quot; Einsatz von Studenten, Funkamateuren und Hobby-Bastler für ca. €50.- erhältlich (J-Link-Edu). Sein Umfang ist auf das Flashen des Speichers und das Debuggen beschränkt. Bonus: Neben den im Prozessor limitiert vorhandenen Hardware-Breakpoints (Anzahl ist MCU abhängig) sind zusätzliche Flash-Breakpoints möglich (müssen aber von der verwendeten Debug-IDE unterstüzt werden). Die sehr gut geplegte Debugger-Software unterstützt nahezu alle ARM Prozessoren. Die Trace-Option wie sie bei der PRO-Variante zur Verfügung steht, ist nicht vorhanden. Für den Preis bekommt man jedoch ein ausgewachsenes Werkzeug mit breiter Unterstützung und der Möglichkeit sowohl SWD als auch JTAG in einem Gerät vereint zu haben. Wenn man aber plant, ein oben genanntes Kit von ST, NXP, Infineon oder ähnlich zu kaufen kann man für ähnliche Kosten auch gleich ein CPU-Board dazubekommen - daher ist es sinnvoll, sich die Dokumentationen der Evalkits voher genau durchzusehen. &lt;br /&gt;
&lt;br /&gt;
Der ULINK2 von Keil/ARM ist ebenfalls ein wirklich gutes Gerät. Leider ist er nicht ganz so günstig und seine Zusammenarbeit beschränkt sich auf die Arm/Keil IDE µVision. Er benötigt jedoch keine speziellen USB-Treiber sondern nutzt geschickt die Funktionalität der HID-Treiber des Betriebssystems. Das macht ihn sofort auf jedem Windows-Betriebssystem einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
Als Alternative zum Beschreiben des Flash über JTAG ist oft ein serieller [[Bootloader]] im Controller enthalten. Bei ST werden sie über einen speziellen Pin der MPU aktiviert und sind dank Kompression und das intelligente entfernen redundanter Information, bei der Übertragung genauso schnell wie JTAG/SWD Adapter.&lt;br /&gt;
&lt;br /&gt;
== CMSIS - ARM Cortex Software Libraries  ==&lt;br /&gt;
 &lt;br /&gt;
Der ARM Cortex Microcontroller Software Interface Standard (CMSIS) ist ein herstellerunabhängiger Hardware Abstraction Layer für die Cortex-M-Prozessor -Serie. Dieser ermöglicht konsistente und einfache Software-Schnittstellen für den Prozessor und die Peripherie, und vereinfacht damit die Software-Wiederverwendung. &lt;br /&gt;
&lt;br /&gt;
CMSIS besteht aus folgenden Komponenten:&lt;br /&gt;
&lt;br /&gt;
* CMSIS-CORE: Bietet eine Schnittstelle zum Cortex-M0, Cortex-M3, Cortex-M4, SC000 und SC300-Prozessorkern und Peripherie-Registern.&lt;br /&gt;
* CMSIS-DSP: DSP-Bibliothek mit über 60 Funktionen in Festkomma-(fractional q7, q15, q31) und single precision floating-point (32-bit)-Implementierung&lt;br /&gt;
* CMSIS-RTOS API: Standardisierte Programmierschnittstelle für Echtzeit-Betriebssysteme für Thread-Steuerung, Ressourcen-und Zeitmanagement. Implementierungen gibt es z.B. von Keil ([http://www.keil.com/pack/doc/cmsis_rtx/index.html RTX])&lt;br /&gt;
* CMSIS-SVD: System View Beschreibung -  XML-Dateien, die die Programmiereransicht des kompletten Mikrocontroller-Systems einschließlich Peripheriegeräte enthalten&lt;br /&gt;
&lt;br /&gt;
Der Standard ist für Cortex-M-Mikrocontroller skalierbar: Von der  kleinsten 4 KB MCU bis zu MCUs mit anspruchsvoller Kommunikations-Peripherie wie Ethernet oder USB. Die &amp;quot;Core Peripheral Funktionen&amp;quot; benötigt beispielsweise weniger als 1 KB-Code und weniger als 10 Bytes RAM.&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* Software Beispiele von [http://www.energymicro.com/downloads/application-notes Energy Micro] basierend auf CMSIS&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen auf der [http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php ARM CMSIS Webseite].&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Linksammlung#ARM|Linksammlung (Abschnitt ARM)]]&lt;br /&gt;
* [[LPC1xxx]]&lt;br /&gt;
* [[LPC1xxx_Entwicklungskit_LPCXpresso]]&lt;br /&gt;
* [[Installationsanleitung_C-Entwicklungsumgebung_f%C3%BCr_LPC1xxx_von_Code_Red]]&lt;br /&gt;
* [[Codebase_f%C3%BCr_LPC1xxx]]&lt;br /&gt;
* [[ARM-elf-GCC-Tutorial]]&lt;br /&gt;
* [[AVR32]]&lt;br /&gt;
* [[Blackfin]]&lt;br /&gt;
* [[AT91SAM9260]]&lt;br /&gt;
* [[STM32]]&lt;br /&gt;
* [[JTAG]]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 EFM32]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/STM32_-_Einstieg_mit_Em::Blocks STM32 - Einstieg mit Em::Blocks Tutorial]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.mySTM32.de Online Tutorial für den STM32]&lt;br /&gt;
* [http://www.myXMC.de Online Tutorial für den XMC von Infineon]&lt;br /&gt;
* [http://www.myUGL.de Online Tutorial für freie Grafikbibliothek, STM32, STM32F429, TFT, Touch]&lt;br /&gt;
* [http://embdev.net/forum/arm-gcc ARM-GCC Forum] im englischsprachigen &amp;quot;Ableger&amp;quot; von mikrocontroller.net embdev.net u.a. für WinARM, Yagarto, CS Codebench&lt;br /&gt;
* [http://www.arm.com/products/processors/cortex-m/index.php Cortex-M Produktseite von ARM]&lt;br /&gt;
* [http://infocenter.arm.com/help/index.jsp Infocenter von ARM Ltd.]&lt;br /&gt;
* [http://www.open-research.org.uk/ARMuC/ ARMuC ARM microcontroller Wiki]&lt;br /&gt;
* [http://chaosradio.ccc.de/cre151.html Chaosradio Express - Die ARM-Architektur]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
*ARM Systems Developer&#039;s Guide (2004) ISBN 1558608745 [http://books.google.de/books?id=HKKUkDQE17QC&amp;amp;output=html Im Buch blättern] [http://booksite.elsevier.com/9781558608740/ Programmbeispiele aus dem Buch, u.a. FFT, FIR/IIR-Filter, Division, Wurzel]&lt;br /&gt;
*ARM Assembly Language - an Introduction (2007) ISBN 1847536964 [http://books.google.de/books?id=8KJX5R8mMvsC&amp;amp;output=html Im Buch blättern]   [http://www.lulu.com/content/1172076 Verlagsseite &amp;quot;Book on demand&amp;quot;]&lt;br /&gt;
*ARM Rechnerarchitekturen für System-on-Chip-Design (2002) ISBN 3826608542&lt;br /&gt;
*Co-Verification of Hardware and Software for Arm Soc Design (2004) ISBN 0750677309&lt;br /&gt;
*ARM System-on-Chip Architecture (2000) ISBN 0201675196 [http://books.google.de/books?id=J_Fu_YTVD9gC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*ARM Architecture Reference Manual ISBN 0201737191 [http://books.google.de/books?id=O5G-6WX1xWsC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*Messen, Steuern und Regeln mit ARM-Mikrocontrollern ISBN 3772340172 [http://books.google.de/books?id=TKs4kN-zNYQC&amp;amp;output=html im Buch blättern]&lt;br /&gt;
*Programming Arm Microcontrollers: Using C and the Lpc2100 Family (2005? /ab 1. Dezember 2008) ISBN 0321263359&lt;br /&gt;
*Arm Assembly: Fundamentals and Techniques (ab 1. März 2009) ISBN 1439806101&lt;br /&gt;
*Reliable Embedded Systems: Using 8051 and ARM Microcontrollers (2007) ISBN 0321252918 600 Seiten mit CD [http://vig.pearsoned.co.uk/catalog/academic/product/0,1144,0321252918-TOC,00.html Inhaltsverzeichnis]&lt;br /&gt;
* C und C++ für Embedded Systems (u.a. ARM Cortex-M3) mitp-Verlag 2008 ISBN 382665949X&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M0 (Joseph Yiu) Newnes Verlag ISBN 0123854776&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M3 (Joseph Yiu) Newnes Verlag ISBN 185617963X&lt;br /&gt;
&lt;br /&gt;
== Artikel aus der Kategorie ARM ==&lt;br /&gt;
&amp;lt;ncl style=compact maxdepth=2 headings=bullet headstart=2&lt;br /&gt;
      showcats=1 showarts=1&amp;gt;ARM&amp;lt;/ncl&amp;gt;&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 &#039;&#039;&#039;EFM32&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/XMCxxxx &#039;&#039;&#039;Infineon XMCxxxx&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [https://www.mikrocontroller.net/articles/Cortex-A ARM Cortex A]&lt;br /&gt;
&lt;br /&gt;
[[Category:ARM| ]]&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94982</id>
		<title>ARM Cortex Mikrocontroller</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94982"/>
		<updated>2017-01-20T16:49:09Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Firma ARM stellt selbst keine Prozessoren/Controller her, sondern entwickelt nur sogenannte &amp;quot;IP-Cores&amp;quot;, die von Herstellern wie Atmel, Infineon, ST, NXP, TI und vielen anderen lizenziert werden. Diese Hersteller ergänzen den Core um Speicher und Peripherie. Der Vorteil dieses Modells ist, dass dadurch sehr viele Prozessoren mit unterschiedlichster Ausstattung verfügbar sind, die alle mit dem selben Befehlssatz (und damit dem selben Compiler) programmierbar sind.&lt;br /&gt;
&lt;br /&gt;
Allen ARM-Cores gemeinsam ist die 32 Bit RISC-Architektur. Für diese gibt es den klassischen 32bit ARM Befehlssatz und den zusätzlichen, kleineren 16/32 Bit &#039;&#039;&#039;Thumb&#039;&#039;&#039;-Befehlssatz. Die verschiedenen Prozessoren/Controller unterstützen einen oder beide davon. Thumb-fähige Controller sind erkennbar am &#039;&#039;&#039;T&#039;&#039;&#039; in der Bezeichnung, z.&amp;amp;nbsp;B. ARM7&#039;&#039;&#039;T&#039;&#039;&#039;DMI. Thumb kodiert die meisten Instruktionen in 16bit, den Rest in 32bit, was in einem kleineren Prozessor und geringenem Platzbedarf des Codes resultiert [http://www.arm.com/files/pdf/ARM_Microcontroller_Code_Size_%28full%29.pdf]; der Nachteil ist die etwas niedrigere Geschwindigkeit. Die Cortex-M Kerne unterstützen ausschließlich den Thumb2-Befehlssatz.&lt;br /&gt;
&lt;br /&gt;
Seit einigen Jahren sind ARM-basierte Mikrocontroller erhältlich, die aufgrund der vergleichbar einfachen Beschaltung und niedrigem Stromverbrauch eine echte Alternative zu 8-Bit-Controllern wie dem [[AVR]] darstellen. Die ersten Controller mit diesen Eigenschaften verwendeten den ARM7TDMI-Kern (zB. LPC2000) (ARMv4T-Architektur). Mittlerweile wurden diese vom Cortex M-Kern abgelöst (ARMv6M, ARMv7M-Architektur), welcher in verschiedenen Varianten für verschiedene Einsatzzwecke verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In diesem Artikel geht es primär um die ARM Cortex-M Mikrocontroller, weniger um ARM [[Cortex-A]] Prozessoren, welche in Smartphones, [[Raspberry Pi]] u.ä. eingesetzt werden.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Varianten des Cortex-M Mikrocontroller-Kerns, aufgeführt vom energieeffizientesten zum leistungsfähigsten (Liste nicht unbedingt aktuell! Am besten immer die Herstellerseiten bemühen).&lt;br /&gt;
&lt;br /&gt;
sgdzg&lt;br /&gt;
&lt;br /&gt;
sdg&lt;br /&gt;
&lt;br /&gt;
sdahg&lt;br /&gt;
&lt;br /&gt;
fdhgfg&lt;br /&gt;
&lt;br /&gt;
sd&lt;br /&gt;
&lt;br /&gt;
== Compiler &amp;amp; Software ==&lt;br /&gt;
&lt;br /&gt;
=== [[ARM_GCC|GCC]] ===&lt;br /&gt;
Einer der beliebtesten Compiler für ARM-Prozessoren ist der GCC. Er kann sowohl ARM- als auch Thumb-Code erzeugen. Mehr dazu unter [[ARM GCC]].&lt;br /&gt;
&lt;br /&gt;
=== C/C++ IDEs ===&lt;br /&gt;
Kostenlose Entwicklungsumgebungen (überwiegend GCC-basiert):&lt;br /&gt;
* [http://www.coocox.org/software.html CooCox IDE] (Eclipse basierend)&lt;br /&gt;
* [https://gnuarmeclipse.github.io GNU ARM Eclipse] (Eclipse Plugin)&lt;br /&gt;
* [http://www.emblocks.org/web/ EmBlocks IDE] (Basiert auf Code::Blocks)&lt;br /&gt;
** Compiler: GNU ARM-GCC (in der Installation enthalten), RealView und IAR &lt;br /&gt;
** Hardware: STlink (mit &amp;quot;Live data&amp;quot;), openOCD, Jlink. &lt;br /&gt;
** Project Import: CoIDE, uVision, Atmel studio, MplabX, Mplab 8&lt;br /&gt;
** OS aware debugging &lt;br /&gt;
***FreeRTOS&lt;br /&gt;
***ChibiOS/RT  &lt;br /&gt;
** Unterstützt sehr viele Controller(-Hersteller):&lt;br /&gt;
***Atmel-ARM&lt;br /&gt;
***NXP-ARM&lt;br /&gt;
***STMicro-ARM&lt;br /&gt;
***EnergyMicro-ARM&lt;br /&gt;
**Keine Beschränkungen&lt;br /&gt;
**Hier gehts zum &#039;&#039;[http://www.emblocks.org/web/downloads-main Download]&#039;&#039;&#039;&lt;br /&gt;
* [http://www.emide.org/ emIDE] Windows, komplette Visual Studio artige Entwicklungsumgebung (basierend auf Code::Blocks) mit GCC und Debugger (Unterstützung für Adapter von Segger) &amp;lt;!-- Projekt eines Segger Mitarbeiters --&amp;gt;&lt;br /&gt;
* [https://mbed.org mbed]: eine kostenlose Online-Entwicklungsumgebung basierend auf dem ARM Realview-Compiler, mit einer umfangreichen C++-Bibliothek für die Controllerfunktionen, integrierter Versionsverwaltung, und vielen Beispielprogrammen. Projekte lassen sich für Keil/IAR/GCC exportieren und offline weiterbearbeiten; die Bibliotheksfunktionen sind Open Source und auch kommerziell einsetzbar.&lt;br /&gt;
* [http://www.isystem.com/products/software/winidea-open winIDEAOpen]Die Fa. iSystem stellt mit der winIDEAOpen nun eine kostenlose Entwicklungsumgebung für alle Cortex-M Bauteile zur Verfügung. Als Compiler wird der GNU GCC verwendet und auch gleich mitinstalliert. Die IDE ist recht intuitiv und mit einer umfangreichen Hilfe ausgestattet. Das Ganze funktioniert mit dem &amp;lt;u&amp;gt;GCC ohne Codesize Limit&amp;lt;/u&amp;gt; und auch ein Testwerkzeug (testIDEA) ist mit integriert. Hardwareseitig werden neben dem iSystem iTag50 [http://www.isystem.com/products/hardware/cortex-debugger/itag] auch die Segger J-Link Debug Probes sowie der ST-Link von ST unterstützt. Auf der Webseite von iSystem sind auch einige schöne Beispielprojekte für diverse Boards zu finden [http://www.isystem.com/download/winideaopen]. Demnächst soll noch die Unterstützung für die ARM und IAR Compiler hinzuzkommen. Hier gehts zum &#039;&#039;[http://www.isystem.com/download/winideaopen Download]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Infineon&#039;&#039;&#039; bietet für seine &#039;&#039;&#039;XMC&#039;&#039;&#039; Prozessorfamilien auch eine kostenlose, professionell gepflegte C/C++ Entwicklungsumgebung an, ohne Einschränkungen auf bestimmte Typen oder Speichergrößen - &amp;lt;u&amp;gt;alle erhältlichen XMC 1000er und 4000er Prozessoren werden unterstützt&amp;lt;/u&amp;gt;. Wenn man sich dazu noch eines der günstigen XMC Evaluierungsboards besorgt (XMC 1100 Bootkit, XMC 4500 Relax (lite) Kit o.ä.), hat man ein erstes Entwicklungssystem inklusive wiederverwendbaren HW-Debugger zur Verfügung. Die Entwicklungsumgebung basiert auf Eclipse, besitzt aber zahlreiche Erweiterungen samt Codegenerierung (sogenannte Apps), die gerade am Anfang viele Dinge abnehmen kann, da man die Peripherals damit einfach grafisch konfigurieren kann. Das ist bei Prozessoren, dessen User Manual einige hundert Seiten ausmacht (oder auch für Umsteiger von 8bitter oder anderen 32bittern), nicht unwichtig. Der generierte Code ist template-basiert, gut lesbar und kann später - wenn man mehr Erfahrung hat, für eigene Entwicklungen weiter nutzen und optimieren. Damit verliert man dann allerdings die Möglichkeit, Updates der generierten Codes aus den Apps zu bekommen, die Infineon ebenfalls kostenfrei zur Verfügung stellt. Die Software nennt sich &#039;&#039;Digital Application Virtual Engineer&#039;&#039; ([http://www.infineon.com/dave DAVE]) und kann nach Registrierung kostenlos für Windows heruntergeladen werden. Innerhalb von Dave kann man dann Apps und viele Beispiele (ohne weitere Anmeldung und Kosten) komplett oder selektiv (für bestimmte Prozessoren) herunterladen. Die aktuell stabile Version ist v3. Es ist eine neue DAVE Umgebung v4 in Arbeit, eine Betaversion kann heruntergeladen werden. Diese neue v4 Variante wird auch ein separates SDK besitzen, um Apps für Dave selbst schreiben zu können (z.B. Bauteilhersteller, die die Anbindung an den XMC für Kunden vereinfachen wollen). Einsteiger sollten aber mit v3 beginnen, um nicht über Bugs der Beta v4 zu stolpern (siehe auch im [http://www.infineonforums.com/forums/8-XMC-Forum XMC-Forum]).&lt;br /&gt;
* &#039;&#039;&#039;NXP&#039;&#039;&#039; bietet für seine &#039;&#039;&#039;LPC&#039;&#039;&#039; Prozessorfamilien eine &amp;lt;u&amp;gt;kostenlose&amp;lt;/u&amp;gt; C/C++ Entwicklungsumgebung an. Die auf Eclipse basierende Entwicklungsumgebung ([http://www.lpcware.com/lpcxpresso LPCXpresso]) ist nach der Installation bis 8kB freigeschaltet und nach einer einfachen und kostenlosen Registrierung für 256kB. [http://www.lpcware.com/lpcxpresso LPCXpresso] steht für Windows, Linux und Mac zur Verfügung.&lt;br /&gt;
* &#039;&#039;&#039;ST&#039;&#039;&#039; bietet für seine &#039;&#039;&#039;STM32&#039;&#039;&#039; Prozessorfamilie eine &amp;lt;u&amp;gt;kostenlose&amp;lt;/u&amp;gt; C/C++ Entwicklungsumgebung an. Die auf Eclipse basierende Entwicklungsumgebung kann nach Registrierung auf der Homepage heruntergeladen werden. [http://www.openstm32.org/] &lt;br /&gt;
&lt;br /&gt;
Kommerzielle Entwicklungsumgebungen (zum Teil kostenlos mit Einschränkungen) für ARM-basierte Mikrocontroller sind z.&amp;amp;nbsp;B.:&lt;br /&gt;
* [http://timor.atollic.com/truestudio/ Atollic TrueStudio] (Windows), Eclipse-basierend inkl. Compiler und Linker für fast alle ARMs, jetzt auch kostenlos mit vielen Beispielen und ohne Codesize-Limitierung, dafür mit anderen Einschränkungen&lt;br /&gt;
* [http://www.cosmicsoftware.com/download_cortex_64k.php Cosmic Software] (Windows), bis 64kB kostenlos&lt;br /&gt;
* [http://rowley.co.uk/arm/ Crossworks ARM] (inkl. Toolchains basierend auf GCC und Clang, für Windows, Mac OS und Linux)&lt;br /&gt;
* [http://www.iar.com/ewarm/ IAR Embedded Workbench for ARM] (Windows)&lt;br /&gt;
* [http://www.keil.com/arm/ MDK-ARM von Keil/ARM] (Windows), Lite-Version bis 32kB kostenlos,&lt;br /&gt;
* [http://www2.keil.com/stmicroelectronics-stm32/mdk MDK-STM32 von KEIL] Speziell für STM32x0 kostenlos ohne Beschränkung &lt;br /&gt;
* [http://www.sisy.de/ SiSy MC++] (Windows), Demo-Version, keine Code-Begrenzung&lt;br /&gt;
&lt;br /&gt;
=== Compiler für sonstige Programmiersprachen ===&lt;br /&gt;
* Basic: http://www.mikroe.com/mikrobasic/arm/&lt;br /&gt;
* Pascal: http://www.mikroe.com/mikropascal/arm/&lt;br /&gt;
&lt;br /&gt;
=== Interpreter ===&lt;br /&gt;
* Forth: https://github.com/ekoeppen/CoreForth&lt;br /&gt;
* JavaScript: http://www.espruino.com/&lt;br /&gt;
* Lua: http://www.eluaproject.net/&lt;br /&gt;
&lt;br /&gt;
=== ARM/XSCALE/CORTEX Instruction Set Simulator ===&lt;br /&gt;
Die Firma Lauterbach bietet unter der Artikelnummer LA-8809 einen Instruction Set Simulator für ARM Cores an. Die Demoversion ist zur Evaluierung kostenlos. Einschränkungen bestehen in der Anzahl der zu ladenden Debugsymbole. Der Simulator unterstützt alle gängigen ARM Derivate und lädt alle üblichen Debugformate, wie die des RealView,  IAR und TI Compilers, oder der freien GCC Tools. Zum Simulator gibt es entsprechende zugehörige Debugtools, die allerdings käuflich zu erwerben sind.&lt;br /&gt;
&lt;br /&gt;
* [http://www.lauterbach.com/frames.html?dwnload.html Download ARM/XSCALE/CORTEX Simulator]&lt;br /&gt;
&lt;br /&gt;
== Debug- und Programmierschnittstellen (JTAG/SWD) ==&lt;br /&gt;
&lt;br /&gt;
Alle ARM-basierten Prozessoren verwenden ein einheitliches [[JTAG]]-Interface, über das Debugging und Speicherzugriff erfolgen kann. Nicht standardisiert sind allerdings die Verfahren zum Beschreiben des Flash-ROMs. Deshalb muss man beachten, ob die verwendete JTAG-Software Programmierroutinen für den jeweiligen Controller besitzt.&lt;br /&gt;
&lt;br /&gt;
SWD (Serial Wire Debug) ist eine neue mit den Cortex-Mikrocontrollern eingeführte Debug- und Programmierschnittstelle, die weniger Pins benötigt als JTAG. Hier wird Debug-Bandbreite bzw. Speed gegen mehr verfügbare Pins für in-circuit Debugging &amp;quot;getauscht&amp;quot;. Die meisten Controller der Cortex-M0 &amp;amp; M3 Serie können sowohl mittels JTAG als auch mittels SWD programmiert werden, es gibt allerdings auch Exemplare (z.B. [[EFM32]] von [https://www.silabs.com Silicon Labs], XMC1100 von [http://www.infineon.com/xmc Infineon]) welche nur SWD unterstützen.&lt;br /&gt;
&lt;br /&gt;
Eine Übersicht über die empfohlenen Steckerbelegungen für JTAG und SWD gibt ein [http://infocenter.arm.com/help/topic/com.arm.doc.faqs/attached/13634/cortex_debug_connectors.pdf Dokument von ARM].&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus gibt es noch herstellerspezifische Schnittstellen wie SPD (Single Pin Debug) von Infineon, oder vorinstallierte serielle Bootloader, z.B. beim [[STM32]] oder auch bei den [[Infineon XMC]], die dann z.B. über ein eigenes [http://www.infineon.com/cms/de/product/microcontroller/development-tools-software-and-kits/c166/xc166-development-tools-software-and-kits/software-downloads/channel.html?channel=ff80808112ab681d0112ab6b50fe07c9 Tool] ohne weitere Hardware - abgesehen von einem handelsüblichen seriellen Schnittstellenadapter - programmiert werden können. &lt;br /&gt;
&lt;br /&gt;
Viele Entwicklungsboards enthalten auch einen On-Board-Debugadapter zum direkten Anschluss an USB, so dass kein externer SWD- oder JTAG-Adapter notwendig ist. Manche erlauben auch, diesen Adapter abzubrechen und für eigene Entwicklungen weiterzuverwenden, somit ist nach dem Kauf eines Eval-Kits nicht nötig, einen weiteren Adapter später nachzukaufen.&lt;br /&gt;
&lt;br /&gt;
=== Günstige Beispiele zum Einstieg ===&lt;br /&gt;
Ein einfacher JTAG-Adapter für den Parallelport ist der &amp;quot;Wiggler&amp;quot;-kompatible, den man auch einfach selbst bauen kann. Als Software lässt sich unter Windows und Linux [http://openocd.berlios.de/ OpenOCD] (zusammen mit [[GDB]]) oder [http://rowley.co.uk Crossworks ARM] verwenden.  Für USB gibt es ebenfalls OpenOCD-kompatible JTAG-Adapter.&lt;br /&gt;
&lt;br /&gt;
Von NXP sind preiswerte Entwicklungskits (ca. 25€ für Evaluation-Board incl. USB-JTAG-/-SWD-Programer und Debugger) erhältlich z.B. &#039;&#039;&#039;[http://www.watterott.com/index.php?page=search&amp;amp;keywords=LPCXpresso&amp;amp;cat=&amp;amp;mnf=&amp;amp;x=0&amp;amp;y=0 Watterott]&#039;&#039;&#039;. Siehe dazu auch die Dokumentation von NXP zu den &#039;&#039;&#039;[http://www.nxp.com/documents/leaflet/75016842.pdf LPCXpresso-Entwicklungskits]&#039;&#039;&#039; (PDF), oder diese &#039;&#039;&#039;[http://www.mikrocontroller.net/wikisoftware/index.php?title=LPC1xxx_Entwicklungskit_LPCXpresso Beschreibung]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Von ST gibt es günstige MBED/Arduino kompatible Nucleo Entwicklungskits (ca. 12€) z.B. &#039;&#039;&#039;[http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1847/PF260320?s_searchtype=partnumber]&#039;&#039;&#039;. Der integrierte ST-Link Debugger kann mittels SWD und OpenOCD als Software auch andere Chip programmieren. Die etwas teuereren Discoveryboards, z.B. &#039;&#039;&#039;[http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF260946?s_searchtype=partnumber]&#039;&#039;&#039;, haben mehr externe Bauteile on-board, während die Nucleo Board über Shields erweiterbar sind. Nur bei Nucleo Boards ist eine UART Schnittstelle als Standard über USB zu erreichen, bei Discovery Boards mit ST-Link V2-1 müssen Lötbrücken gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Auch Infineon bietet Arduino-kompatible Boards+Shields mit dem XMC1100 Prozessor und angeflanschtem Debugger an (ab ca. 16€). Weiters gibt es günstige XMC4500 Kits, die auch Ethernet, SPI-Flash und SDCard-Slot Optionen bieten. Am unteren Ende gibt es ein XMC1100 Kit samt Debugger ab ca. 5€, dieses Board für den Schlüsselbund sozusagen nennt sich treffend &amp;quot;XMC 2 Go&amp;quot;. Die Preise können je nach Distributor stark variieren.&lt;br /&gt;
Siehe auch hier &#039;&#039;&#039;[http://www.infineon.com/cms/de/product/microcontroller/32-bit-industrial-microcontroller-based-on-arm-registered-cortex-registered-m/xmc-development-tools-kits-and-boards/channel.html?channel=db3a30433580b3710135a07902883872 XMC-Starter-Kits]&#039;&#039;&#039;.&lt;br /&gt;
Des weiteren werden auch schon Kits in Verbindung mit Sensoren zum Evaluieren angeboten, wie das &amp;quot;3D 2 Go&amp;quot; Board mit einem XMC1100 Prozessor und dem neuen 3D-Magnetfeldsensor von Infineon, um ein Beispiel zu nennen: &#039;&#039;&#039;[http://www.infineon.com/cms/en/product/sensor-ics/magnetic-sensors/3d-magnetic-sensor/channel.html?channel=5546d4624c9e0f0e014c9e105a8a001c 3D-Sensorkit]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Von Silicon Labs gibt es [https://www.silabs.com/products/mcu/Pages/32-bit-microcontroller-tools.aspx Starter Kits] mit integriertem J-Link (Debugger) ab ca. 25 € z.B. das [https://www.silabs.com/products/mcu/lowpower/Pages/efm32tg-stk3300.aspx EFM32 Tiny Gecko Starter Kit] bei [http://www.mouser.de/ProductDetail/Silicon-Laboratories/EFM32TG-STK3300/?qs=%2fha2pyFadujBGJvO8YBq9JikBLXQGi%2fjwmF17imXuts5383tWpQKFA%3d%3d Mouser]&lt;br /&gt;
&lt;br /&gt;
Der [http://www.segger.com/cms/jlink.html J-Link]-&amp;quot;Emulator&amp;quot; von Segger wird von vielen Softwarepaketen unterstützt und ist für den &amp;quot;nicht-kommerziellen&amp;quot; Einsatz von Studenten, Funkamateuren und Hobby-Bastler für ca. €50.- erhältlich (J-Link-Edu). Sein Umfang ist auf das Flashen des Speichers und das Debuggen beschränkt. Bonus: Neben den im Prozessor limitiert vorhandenen Hardware-Breakpoints (Anzahl ist MCU abhängig) sind zusätzliche Flash-Breakpoints möglich (müssen aber von der verwendeten Debug-IDE unterstüzt werden). Die sehr gut geplegte Debugger-Software unterstützt nahezu alle ARM Prozessoren. Die Trace-Option wie sie bei der PRO-Variante zur Verfügung steht, ist nicht vorhanden. Für den Preis bekommt man jedoch ein ausgewachsenes Werkzeug mit breiter Unterstützung und der Möglichkeit sowohl SWD als auch JTAG in einem Gerät vereint zu haben. Wenn man aber plant, ein oben genanntes Kit von ST, NXP, Infineon oder ähnlich zu kaufen kann man für ähnliche Kosten auch gleich ein CPU-Board dazubekommen - daher ist es sinnvoll, sich die Dokumentationen der Evalkits voher genau durchzusehen. &lt;br /&gt;
&lt;br /&gt;
Der ULINK2 von Keil/ARM ist ebenfalls ein wirklich gutes Gerät. Leider ist er nicht ganz so günstig und seine Zusammenarbeit beschränkt sich auf die Arm/Keil IDE µVision. Er benötigt jedoch keine speziellen USB-Treiber sondern nutzt geschickt die Funktionalität der HID-Treiber des Betriebssystems. Das macht ihn sofort auf jedem Windows-Betriebssystem einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
Als Alternative zum Beschreiben des Flash über JTAG ist oft ein serieller [[Bootloader]] im Controller enthalten. Bei ST werden sie über einen speziellen Pin der MPU aktiviert und sind dank Kompression und das intelligente entfernen redundanter Information, bei der Übertragung genauso schnell wie JTAG/SWD Adapter.&lt;br /&gt;
&lt;br /&gt;
== CMSIS - ARM Cortex Software Libraries  ==&lt;br /&gt;
 &lt;br /&gt;
Der ARM Cortex Microcontroller Software Interface Standard (CMSIS) ist ein herstellerunabhängiger Hardware Abstraction Layer für die Cortex-M-Prozessor -Serie. Dieser ermöglicht konsistente und einfache Software-Schnittstellen für den Prozessor und die Peripherie, und vereinfacht damit die Software-Wiederverwendung. &lt;br /&gt;
&lt;br /&gt;
CMSIS besteht aus folgenden Komponenten:&lt;br /&gt;
&lt;br /&gt;
* CMSIS-CORE: Bietet eine Schnittstelle zum Cortex-M0, Cortex-M3, Cortex-M4, SC000 und SC300-Prozessorkern und Peripherie-Registern.&lt;br /&gt;
* CMSIS-DSP: DSP-Bibliothek mit über 60 Funktionen in Festkomma-(fractional q7, q15, q31) und single precision floating-point (32-bit)-Implementierung&lt;br /&gt;
* CMSIS-RTOS API: Standardisierte Programmierschnittstelle für Echtzeit-Betriebssysteme für Thread-Steuerung, Ressourcen-und Zeitmanagement. Implementierungen gibt es z.B. von Keil ([http://www.keil.com/pack/doc/cmsis_rtx/index.html RTX])&lt;br /&gt;
* CMSIS-SVD: System View Beschreibung -  XML-Dateien, die die Programmiereransicht des kompletten Mikrocontroller-Systems einschließlich Peripheriegeräte enthalten&lt;br /&gt;
&lt;br /&gt;
Der Standard ist für Cortex-M-Mikrocontroller skalierbar: Von der  kleinsten 4 KB MCU bis zu MCUs mit anspruchsvoller Kommunikations-Peripherie wie Ethernet oder USB. Die &amp;quot;Core Peripheral Funktionen&amp;quot; benötigt beispielsweise weniger als 1 KB-Code und weniger als 10 Bytes RAM.&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* Software Beispiele von [http://www.energymicro.com/downloads/application-notes Energy Micro] basierend auf CMSIS&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen auf der [http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php ARM CMSIS Webseite].&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Linksammlung#ARM|Linksammlung (Abschnitt ARM)]]&lt;br /&gt;
* [[LPC1xxx]]&lt;br /&gt;
* [[LPC1xxx_Entwicklungskit_LPCXpresso]]&lt;br /&gt;
* [[Installationsanleitung_C-Entwicklungsumgebung_f%C3%BCr_LPC1xxx_von_Code_Red]]&lt;br /&gt;
* [[Codebase_f%C3%BCr_LPC1xxx]]&lt;br /&gt;
* [[ARM-elf-GCC-Tutorial]]&lt;br /&gt;
* [[AVR32]]&lt;br /&gt;
* [[Blackfin]]&lt;br /&gt;
* [[AT91SAM9260]]&lt;br /&gt;
* [[STM32]]&lt;br /&gt;
* [[JTAG]]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 EFM32]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/STM32_-_Einstieg_mit_Em::Blocks STM32 - Einstieg mit Em::Blocks Tutorial]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.mySTM32.de Online Tutorial für den STM32]&lt;br /&gt;
* [http://www.myXMC.de Online Tutorial für den XMC von Infineon]&lt;br /&gt;
* [http://www.myUGL.de Online Tutorial für freie Grafikbibliothek, STM32, STM32F429, TFT, Touch]&lt;br /&gt;
* [http://embdev.net/forum/arm-gcc ARM-GCC Forum] im englischsprachigen &amp;quot;Ableger&amp;quot; von mikrocontroller.net embdev.net u.a. für WinARM, Yagarto, CS Codebench&lt;br /&gt;
* [http://www.arm.com/products/processors/cortex-m/index.php Cortex-M Produktseite von ARM]&lt;br /&gt;
* [http://infocenter.arm.com/help/index.jsp Infocenter von ARM Ltd.]&lt;br /&gt;
* [http://www.open-research.org.uk/ARMuC/ ARMuC ARM microcontroller Wiki]&lt;br /&gt;
* [http://chaosradio.ccc.de/cre151.html Chaosradio Express - Die ARM-Architektur]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
*ARM Systems Developer&#039;s Guide (2004) ISBN 1558608745 [http://books.google.de/books?id=HKKUkDQE17QC&amp;amp;output=html Im Buch blättern] [http://booksite.elsevier.com/9781558608740/ Programmbeispiele aus dem Buch, u.a. FFT, FIR/IIR-Filter, Division, Wurzel]&lt;br /&gt;
*ARM Assembly Language - an Introduction (2007) ISBN 1847536964 [http://books.google.de/books?id=8KJX5R8mMvsC&amp;amp;output=html Im Buch blättern]   [http://www.lulu.com/content/1172076 Verlagsseite &amp;quot;Book on demand&amp;quot;]&lt;br /&gt;
*ARM Rechnerarchitekturen für System-on-Chip-Design (2002) ISBN 3826608542&lt;br /&gt;
*Co-Verification of Hardware and Software for Arm Soc Design (2004) ISBN 0750677309&lt;br /&gt;
*ARM System-on-Chip Architecture (2000) ISBN 0201675196 [http://books.google.de/books?id=J_Fu_YTVD9gC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*ARM Architecture Reference Manual ISBN 0201737191 [http://books.google.de/books?id=O5G-6WX1xWsC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*Messen, Steuern und Regeln mit ARM-Mikrocontrollern ISBN 3772340172 [http://books.google.de/books?id=TKs4kN-zNYQC&amp;amp;output=html im Buch blättern]&lt;br /&gt;
*Programming Arm Microcontrollers: Using C and the Lpc2100 Family (2005? /ab 1. Dezember 2008) ISBN 0321263359&lt;br /&gt;
*Arm Assembly: Fundamentals and Techniques (ab 1. März 2009) ISBN 1439806101&lt;br /&gt;
*Reliable Embedded Systems: Using 8051 and ARM Microcontrollers (2007) ISBN 0321252918 600 Seiten mit CD [http://vig.pearsoned.co.uk/catalog/academic/product/0,1144,0321252918-TOC,00.html Inhaltsverzeichnis]&lt;br /&gt;
* C und C++ für Embedded Systems (u.a. ARM Cortex-M3) mitp-Verlag 2008 ISBN 382665949X&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M0 (Joseph Yiu) Newnes Verlag ISBN 0123854776&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M3 (Joseph Yiu) Newnes Verlag ISBN 185617963X&lt;br /&gt;
&lt;br /&gt;
== Artikel aus der Kategorie ARM ==&lt;br /&gt;
&amp;lt;ncl style=compact maxdepth=2 headings=bullet headstart=2&lt;br /&gt;
      showcats=1 showarts=1&amp;gt;ARM&amp;lt;/ncl&amp;gt;&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 &#039;&#039;&#039;EFM32&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/XMCxxxx &#039;&#039;&#039;Infineon XMCxxxx&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [https://www.mikrocontroller.net/articles/Cortex-A ARM Cortex A]&lt;br /&gt;
&lt;br /&gt;
[[Category:ARM| ]]&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94981</id>
		<title>ARM Cortex Mikrocontroller</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94981"/>
		<updated>2017-01-20T16:49:04Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Firma ARM stellt selbst keine Prozessoren/Controller her, sondern entwickelt nur sogenannte &amp;quot;IP-Cores&amp;quot;, die von Herstellern wie Atmel, Infineon, ST, NXP, TI und vielen anderen lizenziert werden. Diese Hersteller ergänzen den Core um Speicher und Peripherie. Der Vorteil dieses Modells ist, dass dadurch sehr viele Prozessoren mit unterschiedlichster Ausstattung verfügbar sind, die alle mit dem selben Befehlssatz (und damit dem selben Compiler) programmierbar sind.&lt;br /&gt;
&lt;br /&gt;
Allen ARM-Cores gemeinsam ist die 32 Bit RISC-Architektur. Für diese gibt es den klassischen 32bit ARM Befehlssatz und den zusätzlichen, kleineren 16/32 Bit &#039;&#039;&#039;Thumb&#039;&#039;&#039;-Befehlssatz. Die verschiedenen Prozessoren/Controller unterstützen einen oder beide davon. Thumb-fähige Controller sind erkennbar am &#039;&#039;&#039;T&#039;&#039;&#039; in der Bezeichnung, z.&amp;amp;nbsp;B. ARM7&#039;&#039;&#039;T&#039;&#039;&#039;DMI. Thumb kodiert die meisten Instruktionen in 16bit, den Rest in 32bit, was in einem kleineren Prozessor und geringenem Platzbedarf des Codes resultiert [http://www.arm.com/files/pdf/ARM_Microcontroller_Code_Size_%28full%29.pdf]; der Nachteil ist die etwas niedrigere Geschwindigkeit. Die Cortex-M Kerne unterstützen ausschließlich den Thumb2-Befehlssatz.&lt;br /&gt;
&lt;br /&gt;
Seit einigen Jahren sind ARM-basierte Mikrocontroller erhältlich, die aufgrund der vergleichbar einfachen Beschaltung und niedrigem Stromverbrauch eine echte Alternative zu 8-Bit-Controllern wie dem [[AVR]] darstellen. Die ersten Controller mit diesen Eigenschaften verwendeten den ARM7TDMI-Kern (zB. LPC2000) (ARMv4T-Architektur). Mittlerweile wurden diese vom Cortex M-Kern abgelöst (ARMv6M, ARMv7M-Architektur), welcher in verschiedenen Varianten für verschiedene Einsatzzwecke verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In diesem Artikel geht es primär um die ARM Cortex-M Mikrocontroller, weniger um ARM [[Cortex-A]] Prozessoren, welche in Smartphones, [[Raspberry Pi]] u.ä. eingesetzt werden.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Varianten des Cortex-M Mikrocontroller-Kerns, aufgeführt vom energieeffizientesten zum leistungsfähigsten (Liste nicht unbedingt aktuell! Am besten immer die Herstellerseiten bemühen).&lt;br /&gt;
&lt;br /&gt;
sgdzg&lt;br /&gt;
&lt;br /&gt;
sdg&lt;br /&gt;
&lt;br /&gt;
sdahg&lt;br /&gt;
&lt;br /&gt;
fdhgfg&lt;br /&gt;
&lt;br /&gt;
== ARM7TDMI ==&lt;br /&gt;
Der Vorgänger der Cortex-M-Cores ist der &#039;&#039;&#039;ARM7&#039;&#039;&#039;TDMI. Controllerfamilien dieser Klasse sind immer noch weit verbreitet:&lt;br /&gt;
* NXP (ehemals Philips) [[LPC2000]] &lt;br /&gt;
* Atmel [[AT91SAM]]7&lt;br /&gt;
* Analog Devices [[ADuC7xxx]]&lt;br /&gt;
* [http://focus.ti.com/mcu/docs/mcuprodoverview.tsp?sectionId=95&amp;amp;tabId=203&amp;amp;familyId=454 Texas Instruments TMS470]&lt;br /&gt;
* SAMSUNG S3C24x0 [http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=229&amp;amp;partnum=S3C2410]&lt;br /&gt;
* STR7xx von ST Microelectronics [http://www.st.com/mcu/inchtml-pages-str7.html]&lt;br /&gt;
* und viele weitere&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen zur ARM-Architektur finden sich in der [http://de.wikipedia.org/wiki/ARM-Architektur Wikipedia], weiterführende Links in der [[Linksammlung#ARM|Linksammlung]].&lt;br /&gt;
&lt;br /&gt;
== Compiler &amp;amp; Software ==&lt;br /&gt;
&lt;br /&gt;
=== [[ARM_GCC|GCC]] ===&lt;br /&gt;
Einer der beliebtesten Compiler für ARM-Prozessoren ist der GCC. Er kann sowohl ARM- als auch Thumb-Code erzeugen. Mehr dazu unter [[ARM GCC]].&lt;br /&gt;
&lt;br /&gt;
=== C/C++ IDEs ===&lt;br /&gt;
Kostenlose Entwicklungsumgebungen (überwiegend GCC-basiert):&lt;br /&gt;
* [http://www.coocox.org/software.html CooCox IDE] (Eclipse basierend)&lt;br /&gt;
* [https://gnuarmeclipse.github.io GNU ARM Eclipse] (Eclipse Plugin)&lt;br /&gt;
* [http://www.emblocks.org/web/ EmBlocks IDE] (Basiert auf Code::Blocks)&lt;br /&gt;
** Compiler: GNU ARM-GCC (in der Installation enthalten), RealView und IAR &lt;br /&gt;
** Hardware: STlink (mit &amp;quot;Live data&amp;quot;), openOCD, Jlink. &lt;br /&gt;
** Project Import: CoIDE, uVision, Atmel studio, MplabX, Mplab 8&lt;br /&gt;
** OS aware debugging &lt;br /&gt;
***FreeRTOS&lt;br /&gt;
***ChibiOS/RT  &lt;br /&gt;
** Unterstützt sehr viele Controller(-Hersteller):&lt;br /&gt;
***Atmel-ARM&lt;br /&gt;
***NXP-ARM&lt;br /&gt;
***STMicro-ARM&lt;br /&gt;
***EnergyMicro-ARM&lt;br /&gt;
**Keine Beschränkungen&lt;br /&gt;
**Hier gehts zum &#039;&#039;[http://www.emblocks.org/web/downloads-main Download]&#039;&#039;&#039;&lt;br /&gt;
* [http://www.emide.org/ emIDE] Windows, komplette Visual Studio artige Entwicklungsumgebung (basierend auf Code::Blocks) mit GCC und Debugger (Unterstützung für Adapter von Segger) &amp;lt;!-- Projekt eines Segger Mitarbeiters --&amp;gt;&lt;br /&gt;
* [https://mbed.org mbed]: eine kostenlose Online-Entwicklungsumgebung basierend auf dem ARM Realview-Compiler, mit einer umfangreichen C++-Bibliothek für die Controllerfunktionen, integrierter Versionsverwaltung, und vielen Beispielprogrammen. Projekte lassen sich für Keil/IAR/GCC exportieren und offline weiterbearbeiten; die Bibliotheksfunktionen sind Open Source und auch kommerziell einsetzbar.&lt;br /&gt;
* [http://www.isystem.com/products/software/winidea-open winIDEAOpen]Die Fa. iSystem stellt mit der winIDEAOpen nun eine kostenlose Entwicklungsumgebung für alle Cortex-M Bauteile zur Verfügung. Als Compiler wird der GNU GCC verwendet und auch gleich mitinstalliert. Die IDE ist recht intuitiv und mit einer umfangreichen Hilfe ausgestattet. Das Ganze funktioniert mit dem &amp;lt;u&amp;gt;GCC ohne Codesize Limit&amp;lt;/u&amp;gt; und auch ein Testwerkzeug (testIDEA) ist mit integriert. Hardwareseitig werden neben dem iSystem iTag50 [http://www.isystem.com/products/hardware/cortex-debugger/itag] auch die Segger J-Link Debug Probes sowie der ST-Link von ST unterstützt. Auf der Webseite von iSystem sind auch einige schöne Beispielprojekte für diverse Boards zu finden [http://www.isystem.com/download/winideaopen]. Demnächst soll noch die Unterstützung für die ARM und IAR Compiler hinzuzkommen. Hier gehts zum &#039;&#039;[http://www.isystem.com/download/winideaopen Download]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Infineon&#039;&#039;&#039; bietet für seine &#039;&#039;&#039;XMC&#039;&#039;&#039; Prozessorfamilien auch eine kostenlose, professionell gepflegte C/C++ Entwicklungsumgebung an, ohne Einschränkungen auf bestimmte Typen oder Speichergrößen - &amp;lt;u&amp;gt;alle erhältlichen XMC 1000er und 4000er Prozessoren werden unterstützt&amp;lt;/u&amp;gt;. Wenn man sich dazu noch eines der günstigen XMC Evaluierungsboards besorgt (XMC 1100 Bootkit, XMC 4500 Relax (lite) Kit o.ä.), hat man ein erstes Entwicklungssystem inklusive wiederverwendbaren HW-Debugger zur Verfügung. Die Entwicklungsumgebung basiert auf Eclipse, besitzt aber zahlreiche Erweiterungen samt Codegenerierung (sogenannte Apps), die gerade am Anfang viele Dinge abnehmen kann, da man die Peripherals damit einfach grafisch konfigurieren kann. Das ist bei Prozessoren, dessen User Manual einige hundert Seiten ausmacht (oder auch für Umsteiger von 8bitter oder anderen 32bittern), nicht unwichtig. Der generierte Code ist template-basiert, gut lesbar und kann später - wenn man mehr Erfahrung hat, für eigene Entwicklungen weiter nutzen und optimieren. Damit verliert man dann allerdings die Möglichkeit, Updates der generierten Codes aus den Apps zu bekommen, die Infineon ebenfalls kostenfrei zur Verfügung stellt. Die Software nennt sich &#039;&#039;Digital Application Virtual Engineer&#039;&#039; ([http://www.infineon.com/dave DAVE]) und kann nach Registrierung kostenlos für Windows heruntergeladen werden. Innerhalb von Dave kann man dann Apps und viele Beispiele (ohne weitere Anmeldung und Kosten) komplett oder selektiv (für bestimmte Prozessoren) herunterladen. Die aktuell stabile Version ist v3. Es ist eine neue DAVE Umgebung v4 in Arbeit, eine Betaversion kann heruntergeladen werden. Diese neue v4 Variante wird auch ein separates SDK besitzen, um Apps für Dave selbst schreiben zu können (z.B. Bauteilhersteller, die die Anbindung an den XMC für Kunden vereinfachen wollen). Einsteiger sollten aber mit v3 beginnen, um nicht über Bugs der Beta v4 zu stolpern (siehe auch im [http://www.infineonforums.com/forums/8-XMC-Forum XMC-Forum]).&lt;br /&gt;
* &#039;&#039;&#039;NXP&#039;&#039;&#039; bietet für seine &#039;&#039;&#039;LPC&#039;&#039;&#039; Prozessorfamilien eine &amp;lt;u&amp;gt;kostenlose&amp;lt;/u&amp;gt; C/C++ Entwicklungsumgebung an. Die auf Eclipse basierende Entwicklungsumgebung ([http://www.lpcware.com/lpcxpresso LPCXpresso]) ist nach der Installation bis 8kB freigeschaltet und nach einer einfachen und kostenlosen Registrierung für 256kB. [http://www.lpcware.com/lpcxpresso LPCXpresso] steht für Windows, Linux und Mac zur Verfügung.&lt;br /&gt;
* &#039;&#039;&#039;ST&#039;&#039;&#039; bietet für seine &#039;&#039;&#039;STM32&#039;&#039;&#039; Prozessorfamilie eine &amp;lt;u&amp;gt;kostenlose&amp;lt;/u&amp;gt; C/C++ Entwicklungsumgebung an. Die auf Eclipse basierende Entwicklungsumgebung kann nach Registrierung auf der Homepage heruntergeladen werden. [http://www.openstm32.org/] &lt;br /&gt;
&lt;br /&gt;
Kommerzielle Entwicklungsumgebungen (zum Teil kostenlos mit Einschränkungen) für ARM-basierte Mikrocontroller sind z.&amp;amp;nbsp;B.:&lt;br /&gt;
* [http://timor.atollic.com/truestudio/ Atollic TrueStudio] (Windows), Eclipse-basierend inkl. Compiler und Linker für fast alle ARMs, jetzt auch kostenlos mit vielen Beispielen und ohne Codesize-Limitierung, dafür mit anderen Einschränkungen&lt;br /&gt;
* [http://www.cosmicsoftware.com/download_cortex_64k.php Cosmic Software] (Windows), bis 64kB kostenlos&lt;br /&gt;
* [http://rowley.co.uk/arm/ Crossworks ARM] (inkl. Toolchains basierend auf GCC und Clang, für Windows, Mac OS und Linux)&lt;br /&gt;
* [http://www.iar.com/ewarm/ IAR Embedded Workbench for ARM] (Windows)&lt;br /&gt;
* [http://www.keil.com/arm/ MDK-ARM von Keil/ARM] (Windows), Lite-Version bis 32kB kostenlos,&lt;br /&gt;
* [http://www2.keil.com/stmicroelectronics-stm32/mdk MDK-STM32 von KEIL] Speziell für STM32x0 kostenlos ohne Beschränkung &lt;br /&gt;
* [http://www.sisy.de/ SiSy MC++] (Windows), Demo-Version, keine Code-Begrenzung&lt;br /&gt;
&lt;br /&gt;
=== Compiler für sonstige Programmiersprachen ===&lt;br /&gt;
* Basic: http://www.mikroe.com/mikrobasic/arm/&lt;br /&gt;
* Pascal: http://www.mikroe.com/mikropascal/arm/&lt;br /&gt;
&lt;br /&gt;
=== Interpreter ===&lt;br /&gt;
* Forth: https://github.com/ekoeppen/CoreForth&lt;br /&gt;
* JavaScript: http://www.espruino.com/&lt;br /&gt;
* Lua: http://www.eluaproject.net/&lt;br /&gt;
&lt;br /&gt;
=== ARM/XSCALE/CORTEX Instruction Set Simulator ===&lt;br /&gt;
Die Firma Lauterbach bietet unter der Artikelnummer LA-8809 einen Instruction Set Simulator für ARM Cores an. Die Demoversion ist zur Evaluierung kostenlos. Einschränkungen bestehen in der Anzahl der zu ladenden Debugsymbole. Der Simulator unterstützt alle gängigen ARM Derivate und lädt alle üblichen Debugformate, wie die des RealView,  IAR und TI Compilers, oder der freien GCC Tools. Zum Simulator gibt es entsprechende zugehörige Debugtools, die allerdings käuflich zu erwerben sind.&lt;br /&gt;
&lt;br /&gt;
* [http://www.lauterbach.com/frames.html?dwnload.html Download ARM/XSCALE/CORTEX Simulator]&lt;br /&gt;
&lt;br /&gt;
== Debug- und Programmierschnittstellen (JTAG/SWD) ==&lt;br /&gt;
&lt;br /&gt;
Alle ARM-basierten Prozessoren verwenden ein einheitliches [[JTAG]]-Interface, über das Debugging und Speicherzugriff erfolgen kann. Nicht standardisiert sind allerdings die Verfahren zum Beschreiben des Flash-ROMs. Deshalb muss man beachten, ob die verwendete JTAG-Software Programmierroutinen für den jeweiligen Controller besitzt.&lt;br /&gt;
&lt;br /&gt;
SWD (Serial Wire Debug) ist eine neue mit den Cortex-Mikrocontrollern eingeführte Debug- und Programmierschnittstelle, die weniger Pins benötigt als JTAG. Hier wird Debug-Bandbreite bzw. Speed gegen mehr verfügbare Pins für in-circuit Debugging &amp;quot;getauscht&amp;quot;. Die meisten Controller der Cortex-M0 &amp;amp; M3 Serie können sowohl mittels JTAG als auch mittels SWD programmiert werden, es gibt allerdings auch Exemplare (z.B. [[EFM32]] von [https://www.silabs.com Silicon Labs], XMC1100 von [http://www.infineon.com/xmc Infineon]) welche nur SWD unterstützen.&lt;br /&gt;
&lt;br /&gt;
Eine Übersicht über die empfohlenen Steckerbelegungen für JTAG und SWD gibt ein [http://infocenter.arm.com/help/topic/com.arm.doc.faqs/attached/13634/cortex_debug_connectors.pdf Dokument von ARM].&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus gibt es noch herstellerspezifische Schnittstellen wie SPD (Single Pin Debug) von Infineon, oder vorinstallierte serielle Bootloader, z.B. beim [[STM32]] oder auch bei den [[Infineon XMC]], die dann z.B. über ein eigenes [http://www.infineon.com/cms/de/product/microcontroller/development-tools-software-and-kits/c166/xc166-development-tools-software-and-kits/software-downloads/channel.html?channel=ff80808112ab681d0112ab6b50fe07c9 Tool] ohne weitere Hardware - abgesehen von einem handelsüblichen seriellen Schnittstellenadapter - programmiert werden können. &lt;br /&gt;
&lt;br /&gt;
Viele Entwicklungsboards enthalten auch einen On-Board-Debugadapter zum direkten Anschluss an USB, so dass kein externer SWD- oder JTAG-Adapter notwendig ist. Manche erlauben auch, diesen Adapter abzubrechen und für eigene Entwicklungen weiterzuverwenden, somit ist nach dem Kauf eines Eval-Kits nicht nötig, einen weiteren Adapter später nachzukaufen.&lt;br /&gt;
&lt;br /&gt;
=== Günstige Beispiele zum Einstieg ===&lt;br /&gt;
Ein einfacher JTAG-Adapter für den Parallelport ist der &amp;quot;Wiggler&amp;quot;-kompatible, den man auch einfach selbst bauen kann. Als Software lässt sich unter Windows und Linux [http://openocd.berlios.de/ OpenOCD] (zusammen mit [[GDB]]) oder [http://rowley.co.uk Crossworks ARM] verwenden.  Für USB gibt es ebenfalls OpenOCD-kompatible JTAG-Adapter.&lt;br /&gt;
&lt;br /&gt;
Von NXP sind preiswerte Entwicklungskits (ca. 25€ für Evaluation-Board incl. USB-JTAG-/-SWD-Programer und Debugger) erhältlich z.B. &#039;&#039;&#039;[http://www.watterott.com/index.php?page=search&amp;amp;keywords=LPCXpresso&amp;amp;cat=&amp;amp;mnf=&amp;amp;x=0&amp;amp;y=0 Watterott]&#039;&#039;&#039;. Siehe dazu auch die Dokumentation von NXP zu den &#039;&#039;&#039;[http://www.nxp.com/documents/leaflet/75016842.pdf LPCXpresso-Entwicklungskits]&#039;&#039;&#039; (PDF), oder diese &#039;&#039;&#039;[http://www.mikrocontroller.net/wikisoftware/index.php?title=LPC1xxx_Entwicklungskit_LPCXpresso Beschreibung]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Von ST gibt es günstige MBED/Arduino kompatible Nucleo Entwicklungskits (ca. 12€) z.B. &#039;&#039;&#039;[http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1847/PF260320?s_searchtype=partnumber]&#039;&#039;&#039;. Der integrierte ST-Link Debugger kann mittels SWD und OpenOCD als Software auch andere Chip programmieren. Die etwas teuereren Discoveryboards, z.B. &#039;&#039;&#039;[http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF260946?s_searchtype=partnumber]&#039;&#039;&#039;, haben mehr externe Bauteile on-board, während die Nucleo Board über Shields erweiterbar sind. Nur bei Nucleo Boards ist eine UART Schnittstelle als Standard über USB zu erreichen, bei Discovery Boards mit ST-Link V2-1 müssen Lötbrücken gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Auch Infineon bietet Arduino-kompatible Boards+Shields mit dem XMC1100 Prozessor und angeflanschtem Debugger an (ab ca. 16€). Weiters gibt es günstige XMC4500 Kits, die auch Ethernet, SPI-Flash und SDCard-Slot Optionen bieten. Am unteren Ende gibt es ein XMC1100 Kit samt Debugger ab ca. 5€, dieses Board für den Schlüsselbund sozusagen nennt sich treffend &amp;quot;XMC 2 Go&amp;quot;. Die Preise können je nach Distributor stark variieren.&lt;br /&gt;
Siehe auch hier &#039;&#039;&#039;[http://www.infineon.com/cms/de/product/microcontroller/32-bit-industrial-microcontroller-based-on-arm-registered-cortex-registered-m/xmc-development-tools-kits-and-boards/channel.html?channel=db3a30433580b3710135a07902883872 XMC-Starter-Kits]&#039;&#039;&#039;.&lt;br /&gt;
Des weiteren werden auch schon Kits in Verbindung mit Sensoren zum Evaluieren angeboten, wie das &amp;quot;3D 2 Go&amp;quot; Board mit einem XMC1100 Prozessor und dem neuen 3D-Magnetfeldsensor von Infineon, um ein Beispiel zu nennen: &#039;&#039;&#039;[http://www.infineon.com/cms/en/product/sensor-ics/magnetic-sensors/3d-magnetic-sensor/channel.html?channel=5546d4624c9e0f0e014c9e105a8a001c 3D-Sensorkit]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Von Silicon Labs gibt es [https://www.silabs.com/products/mcu/Pages/32-bit-microcontroller-tools.aspx Starter Kits] mit integriertem J-Link (Debugger) ab ca. 25 € z.B. das [https://www.silabs.com/products/mcu/lowpower/Pages/efm32tg-stk3300.aspx EFM32 Tiny Gecko Starter Kit] bei [http://www.mouser.de/ProductDetail/Silicon-Laboratories/EFM32TG-STK3300/?qs=%2fha2pyFadujBGJvO8YBq9JikBLXQGi%2fjwmF17imXuts5383tWpQKFA%3d%3d Mouser]&lt;br /&gt;
&lt;br /&gt;
Der [http://www.segger.com/cms/jlink.html J-Link]-&amp;quot;Emulator&amp;quot; von Segger wird von vielen Softwarepaketen unterstützt und ist für den &amp;quot;nicht-kommerziellen&amp;quot; Einsatz von Studenten, Funkamateuren und Hobby-Bastler für ca. €50.- erhältlich (J-Link-Edu). Sein Umfang ist auf das Flashen des Speichers und das Debuggen beschränkt. Bonus: Neben den im Prozessor limitiert vorhandenen Hardware-Breakpoints (Anzahl ist MCU abhängig) sind zusätzliche Flash-Breakpoints möglich (müssen aber von der verwendeten Debug-IDE unterstüzt werden). Die sehr gut geplegte Debugger-Software unterstützt nahezu alle ARM Prozessoren. Die Trace-Option wie sie bei der PRO-Variante zur Verfügung steht, ist nicht vorhanden. Für den Preis bekommt man jedoch ein ausgewachsenes Werkzeug mit breiter Unterstützung und der Möglichkeit sowohl SWD als auch JTAG in einem Gerät vereint zu haben. Wenn man aber plant, ein oben genanntes Kit von ST, NXP, Infineon oder ähnlich zu kaufen kann man für ähnliche Kosten auch gleich ein CPU-Board dazubekommen - daher ist es sinnvoll, sich die Dokumentationen der Evalkits voher genau durchzusehen. &lt;br /&gt;
&lt;br /&gt;
Der ULINK2 von Keil/ARM ist ebenfalls ein wirklich gutes Gerät. Leider ist er nicht ganz so günstig und seine Zusammenarbeit beschränkt sich auf die Arm/Keil IDE µVision. Er benötigt jedoch keine speziellen USB-Treiber sondern nutzt geschickt die Funktionalität der HID-Treiber des Betriebssystems. Das macht ihn sofort auf jedem Windows-Betriebssystem einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
Als Alternative zum Beschreiben des Flash über JTAG ist oft ein serieller [[Bootloader]] im Controller enthalten. Bei ST werden sie über einen speziellen Pin der MPU aktiviert und sind dank Kompression und das intelligente entfernen redundanter Information, bei der Übertragung genauso schnell wie JTAG/SWD Adapter.&lt;br /&gt;
&lt;br /&gt;
== CMSIS - ARM Cortex Software Libraries  ==&lt;br /&gt;
 &lt;br /&gt;
Der ARM Cortex Microcontroller Software Interface Standard (CMSIS) ist ein herstellerunabhängiger Hardware Abstraction Layer für die Cortex-M-Prozessor -Serie. Dieser ermöglicht konsistente und einfache Software-Schnittstellen für den Prozessor und die Peripherie, und vereinfacht damit die Software-Wiederverwendung. &lt;br /&gt;
&lt;br /&gt;
CMSIS besteht aus folgenden Komponenten:&lt;br /&gt;
&lt;br /&gt;
* CMSIS-CORE: Bietet eine Schnittstelle zum Cortex-M0, Cortex-M3, Cortex-M4, SC000 und SC300-Prozessorkern und Peripherie-Registern.&lt;br /&gt;
* CMSIS-DSP: DSP-Bibliothek mit über 60 Funktionen in Festkomma-(fractional q7, q15, q31) und single precision floating-point (32-bit)-Implementierung&lt;br /&gt;
* CMSIS-RTOS API: Standardisierte Programmierschnittstelle für Echtzeit-Betriebssysteme für Thread-Steuerung, Ressourcen-und Zeitmanagement. Implementierungen gibt es z.B. von Keil ([http://www.keil.com/pack/doc/cmsis_rtx/index.html RTX])&lt;br /&gt;
* CMSIS-SVD: System View Beschreibung -  XML-Dateien, die die Programmiereransicht des kompletten Mikrocontroller-Systems einschließlich Peripheriegeräte enthalten&lt;br /&gt;
&lt;br /&gt;
Der Standard ist für Cortex-M-Mikrocontroller skalierbar: Von der  kleinsten 4 KB MCU bis zu MCUs mit anspruchsvoller Kommunikations-Peripherie wie Ethernet oder USB. Die &amp;quot;Core Peripheral Funktionen&amp;quot; benötigt beispielsweise weniger als 1 KB-Code und weniger als 10 Bytes RAM.&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* Software Beispiele von [http://www.energymicro.com/downloads/application-notes Energy Micro] basierend auf CMSIS&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen auf der [http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php ARM CMSIS Webseite].&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Linksammlung#ARM|Linksammlung (Abschnitt ARM)]]&lt;br /&gt;
* [[LPC1xxx]]&lt;br /&gt;
* [[LPC1xxx_Entwicklungskit_LPCXpresso]]&lt;br /&gt;
* [[Installationsanleitung_C-Entwicklungsumgebung_f%C3%BCr_LPC1xxx_von_Code_Red]]&lt;br /&gt;
* [[Codebase_f%C3%BCr_LPC1xxx]]&lt;br /&gt;
* [[ARM-elf-GCC-Tutorial]]&lt;br /&gt;
* [[AVR32]]&lt;br /&gt;
* [[Blackfin]]&lt;br /&gt;
* [[AT91SAM9260]]&lt;br /&gt;
* [[STM32]]&lt;br /&gt;
* [[JTAG]]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 EFM32]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/STM32_-_Einstieg_mit_Em::Blocks STM32 - Einstieg mit Em::Blocks Tutorial]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.mySTM32.de Online Tutorial für den STM32]&lt;br /&gt;
* [http://www.myXMC.de Online Tutorial für den XMC von Infineon]&lt;br /&gt;
* [http://www.myUGL.de Online Tutorial für freie Grafikbibliothek, STM32, STM32F429, TFT, Touch]&lt;br /&gt;
* [http://embdev.net/forum/arm-gcc ARM-GCC Forum] im englischsprachigen &amp;quot;Ableger&amp;quot; von mikrocontroller.net embdev.net u.a. für WinARM, Yagarto, CS Codebench&lt;br /&gt;
* [http://www.arm.com/products/processors/cortex-m/index.php Cortex-M Produktseite von ARM]&lt;br /&gt;
* [http://infocenter.arm.com/help/index.jsp Infocenter von ARM Ltd.]&lt;br /&gt;
* [http://www.open-research.org.uk/ARMuC/ ARMuC ARM microcontroller Wiki]&lt;br /&gt;
* [http://chaosradio.ccc.de/cre151.html Chaosradio Express - Die ARM-Architektur]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
*ARM Systems Developer&#039;s Guide (2004) ISBN 1558608745 [http://books.google.de/books?id=HKKUkDQE17QC&amp;amp;output=html Im Buch blättern] [http://booksite.elsevier.com/9781558608740/ Programmbeispiele aus dem Buch, u.a. FFT, FIR/IIR-Filter, Division, Wurzel]&lt;br /&gt;
*ARM Assembly Language - an Introduction (2007) ISBN 1847536964 [http://books.google.de/books?id=8KJX5R8mMvsC&amp;amp;output=html Im Buch blättern]   [http://www.lulu.com/content/1172076 Verlagsseite &amp;quot;Book on demand&amp;quot;]&lt;br /&gt;
*ARM Rechnerarchitekturen für System-on-Chip-Design (2002) ISBN 3826608542&lt;br /&gt;
*Co-Verification of Hardware and Software for Arm Soc Design (2004) ISBN 0750677309&lt;br /&gt;
*ARM System-on-Chip Architecture (2000) ISBN 0201675196 [http://books.google.de/books?id=J_Fu_YTVD9gC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*ARM Architecture Reference Manual ISBN 0201737191 [http://books.google.de/books?id=O5G-6WX1xWsC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*Messen, Steuern und Regeln mit ARM-Mikrocontrollern ISBN 3772340172 [http://books.google.de/books?id=TKs4kN-zNYQC&amp;amp;output=html im Buch blättern]&lt;br /&gt;
*Programming Arm Microcontrollers: Using C and the Lpc2100 Family (2005? /ab 1. Dezember 2008) ISBN 0321263359&lt;br /&gt;
*Arm Assembly: Fundamentals and Techniques (ab 1. März 2009) ISBN 1439806101&lt;br /&gt;
*Reliable Embedded Systems: Using 8051 and ARM Microcontrollers (2007) ISBN 0321252918 600 Seiten mit CD [http://vig.pearsoned.co.uk/catalog/academic/product/0,1144,0321252918-TOC,00.html Inhaltsverzeichnis]&lt;br /&gt;
* C und C++ für Embedded Systems (u.a. ARM Cortex-M3) mitp-Verlag 2008 ISBN 382665949X&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M0 (Joseph Yiu) Newnes Verlag ISBN 0123854776&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M3 (Joseph Yiu) Newnes Verlag ISBN 185617963X&lt;br /&gt;
&lt;br /&gt;
== Artikel aus der Kategorie ARM ==&lt;br /&gt;
&amp;lt;ncl style=compact maxdepth=2 headings=bullet headstart=2&lt;br /&gt;
      showcats=1 showarts=1&amp;gt;ARM&amp;lt;/ncl&amp;gt;&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 &#039;&#039;&#039;EFM32&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/XMCxxxx &#039;&#039;&#039;Infineon XMCxxxx&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [https://www.mikrocontroller.net/articles/Cortex-A ARM Cortex A]&lt;br /&gt;
&lt;br /&gt;
[[Category:ARM| ]]&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94980</id>
		<title>ARM Cortex Mikrocontroller</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94980"/>
		<updated>2017-01-20T16:48:58Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Firma ARM stellt selbst keine Prozessoren/Controller her, sondern entwickelt nur sogenannte &amp;quot;IP-Cores&amp;quot;, die von Herstellern wie Atmel, Infineon, ST, NXP, TI und vielen anderen lizenziert werden. Diese Hersteller ergänzen den Core um Speicher und Peripherie. Der Vorteil dieses Modells ist, dass dadurch sehr viele Prozessoren mit unterschiedlichster Ausstattung verfügbar sind, die alle mit dem selben Befehlssatz (und damit dem selben Compiler) programmierbar sind.&lt;br /&gt;
&lt;br /&gt;
Allen ARM-Cores gemeinsam ist die 32 Bit RISC-Architektur. Für diese gibt es den klassischen 32bit ARM Befehlssatz und den zusätzlichen, kleineren 16/32 Bit &#039;&#039;&#039;Thumb&#039;&#039;&#039;-Befehlssatz. Die verschiedenen Prozessoren/Controller unterstützen einen oder beide davon. Thumb-fähige Controller sind erkennbar am &#039;&#039;&#039;T&#039;&#039;&#039; in der Bezeichnung, z.&amp;amp;nbsp;B. ARM7&#039;&#039;&#039;T&#039;&#039;&#039;DMI. Thumb kodiert die meisten Instruktionen in 16bit, den Rest in 32bit, was in einem kleineren Prozessor und geringenem Platzbedarf des Codes resultiert [http://www.arm.com/files/pdf/ARM_Microcontroller_Code_Size_%28full%29.pdf]; der Nachteil ist die etwas niedrigere Geschwindigkeit. Die Cortex-M Kerne unterstützen ausschließlich den Thumb2-Befehlssatz.&lt;br /&gt;
&lt;br /&gt;
Seit einigen Jahren sind ARM-basierte Mikrocontroller erhältlich, die aufgrund der vergleichbar einfachen Beschaltung und niedrigem Stromverbrauch eine echte Alternative zu 8-Bit-Controllern wie dem [[AVR]] darstellen. Die ersten Controller mit diesen Eigenschaften verwendeten den ARM7TDMI-Kern (zB. LPC2000) (ARMv4T-Architektur). Mittlerweile wurden diese vom Cortex M-Kern abgelöst (ARMv6M, ARMv7M-Architektur), welcher in verschiedenen Varianten für verschiedene Einsatzzwecke verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In diesem Artikel geht es primär um die ARM Cortex-M Mikrocontroller, weniger um ARM [[Cortex-A]] Prozessoren, welche in Smartphones, [[Raspberry Pi]] u.ä. eingesetzt werden.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Varianten des Cortex-M Mikrocontroller-Kerns, aufgeführt vom energieeffizientesten zum leistungsfähigsten (Liste nicht unbedingt aktuell! Am besten immer die Herstellerseiten bemühen).&lt;br /&gt;
&lt;br /&gt;
sgdzg&lt;br /&gt;
&lt;br /&gt;
sdg&lt;br /&gt;
&lt;br /&gt;
sdahg&lt;br /&gt;
&lt;br /&gt;
== ARM Cortex M7 ==&lt;br /&gt;
&lt;br /&gt;
Die neueste Variante der Cortex M-Reihe ist der M7, bei dem gegenüber dem M4 zahlreiche Features hinzukommen die die Brücke zu Anwendungsprozessoren schlagen: eine double precision-FPU, Code- und Daten-Cache, eine 6-stufige Pipeline mit Sprungvorhersage, und unterm Strich eine deutlich höhere Rechenleistung. Controller basierend auf dem Cortex M7 sind u.a. von Atmel, NXP und ST erhältlich. &lt;br /&gt;
&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/ARM/SAM-E.aspx SAME] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/ARM/SAM-S.aspx SAMS] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/ARM/SAM-V.aspx SAMV] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/ARM/sam7s_se.aspx SAM7S/SE] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/ARM/sam7x_xc.aspx SAM7X/XC] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.st.com/web/en/catalog/mmc/SC1169/SS1858 Produktseite der STM32F7-Serie von ST]&lt;br /&gt;
&lt;br /&gt;
== ARM7TDMI ==&lt;br /&gt;
Der Vorgänger der Cortex-M-Cores ist der &#039;&#039;&#039;ARM7&#039;&#039;&#039;TDMI. Controllerfamilien dieser Klasse sind immer noch weit verbreitet:&lt;br /&gt;
* NXP (ehemals Philips) [[LPC2000]] &lt;br /&gt;
* Atmel [[AT91SAM]]7&lt;br /&gt;
* Analog Devices [[ADuC7xxx]]&lt;br /&gt;
* [http://focus.ti.com/mcu/docs/mcuprodoverview.tsp?sectionId=95&amp;amp;tabId=203&amp;amp;familyId=454 Texas Instruments TMS470]&lt;br /&gt;
* SAMSUNG S3C24x0 [http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=229&amp;amp;partnum=S3C2410]&lt;br /&gt;
* STR7xx von ST Microelectronics [http://www.st.com/mcu/inchtml-pages-str7.html]&lt;br /&gt;
* und viele weitere&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen zur ARM-Architektur finden sich in der [http://de.wikipedia.org/wiki/ARM-Architektur Wikipedia], weiterführende Links in der [[Linksammlung#ARM|Linksammlung]].&lt;br /&gt;
&lt;br /&gt;
== Compiler &amp;amp; Software ==&lt;br /&gt;
&lt;br /&gt;
=== [[ARM_GCC|GCC]] ===&lt;br /&gt;
Einer der beliebtesten Compiler für ARM-Prozessoren ist der GCC. Er kann sowohl ARM- als auch Thumb-Code erzeugen. Mehr dazu unter [[ARM GCC]].&lt;br /&gt;
&lt;br /&gt;
=== C/C++ IDEs ===&lt;br /&gt;
Kostenlose Entwicklungsumgebungen (überwiegend GCC-basiert):&lt;br /&gt;
* [http://www.coocox.org/software.html CooCox IDE] (Eclipse basierend)&lt;br /&gt;
* [https://gnuarmeclipse.github.io GNU ARM Eclipse] (Eclipse Plugin)&lt;br /&gt;
* [http://www.emblocks.org/web/ EmBlocks IDE] (Basiert auf Code::Blocks)&lt;br /&gt;
** Compiler: GNU ARM-GCC (in der Installation enthalten), RealView und IAR &lt;br /&gt;
** Hardware: STlink (mit &amp;quot;Live data&amp;quot;), openOCD, Jlink. &lt;br /&gt;
** Project Import: CoIDE, uVision, Atmel studio, MplabX, Mplab 8&lt;br /&gt;
** OS aware debugging &lt;br /&gt;
***FreeRTOS&lt;br /&gt;
***ChibiOS/RT  &lt;br /&gt;
** Unterstützt sehr viele Controller(-Hersteller):&lt;br /&gt;
***Atmel-ARM&lt;br /&gt;
***NXP-ARM&lt;br /&gt;
***STMicro-ARM&lt;br /&gt;
***EnergyMicro-ARM&lt;br /&gt;
**Keine Beschränkungen&lt;br /&gt;
**Hier gehts zum &#039;&#039;[http://www.emblocks.org/web/downloads-main Download]&#039;&#039;&#039;&lt;br /&gt;
* [http://www.emide.org/ emIDE] Windows, komplette Visual Studio artige Entwicklungsumgebung (basierend auf Code::Blocks) mit GCC und Debugger (Unterstützung für Adapter von Segger) &amp;lt;!-- Projekt eines Segger Mitarbeiters --&amp;gt;&lt;br /&gt;
* [https://mbed.org mbed]: eine kostenlose Online-Entwicklungsumgebung basierend auf dem ARM Realview-Compiler, mit einer umfangreichen C++-Bibliothek für die Controllerfunktionen, integrierter Versionsverwaltung, und vielen Beispielprogrammen. Projekte lassen sich für Keil/IAR/GCC exportieren und offline weiterbearbeiten; die Bibliotheksfunktionen sind Open Source und auch kommerziell einsetzbar.&lt;br /&gt;
* [http://www.isystem.com/products/software/winidea-open winIDEAOpen]Die Fa. iSystem stellt mit der winIDEAOpen nun eine kostenlose Entwicklungsumgebung für alle Cortex-M Bauteile zur Verfügung. Als Compiler wird der GNU GCC verwendet und auch gleich mitinstalliert. Die IDE ist recht intuitiv und mit einer umfangreichen Hilfe ausgestattet. Das Ganze funktioniert mit dem &amp;lt;u&amp;gt;GCC ohne Codesize Limit&amp;lt;/u&amp;gt; und auch ein Testwerkzeug (testIDEA) ist mit integriert. Hardwareseitig werden neben dem iSystem iTag50 [http://www.isystem.com/products/hardware/cortex-debugger/itag] auch die Segger J-Link Debug Probes sowie der ST-Link von ST unterstützt. Auf der Webseite von iSystem sind auch einige schöne Beispielprojekte für diverse Boards zu finden [http://www.isystem.com/download/winideaopen]. Demnächst soll noch die Unterstützung für die ARM und IAR Compiler hinzuzkommen. Hier gehts zum &#039;&#039;[http://www.isystem.com/download/winideaopen Download]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Infineon&#039;&#039;&#039; bietet für seine &#039;&#039;&#039;XMC&#039;&#039;&#039; Prozessorfamilien auch eine kostenlose, professionell gepflegte C/C++ Entwicklungsumgebung an, ohne Einschränkungen auf bestimmte Typen oder Speichergrößen - &amp;lt;u&amp;gt;alle erhältlichen XMC 1000er und 4000er Prozessoren werden unterstützt&amp;lt;/u&amp;gt;. Wenn man sich dazu noch eines der günstigen XMC Evaluierungsboards besorgt (XMC 1100 Bootkit, XMC 4500 Relax (lite) Kit o.ä.), hat man ein erstes Entwicklungssystem inklusive wiederverwendbaren HW-Debugger zur Verfügung. Die Entwicklungsumgebung basiert auf Eclipse, besitzt aber zahlreiche Erweiterungen samt Codegenerierung (sogenannte Apps), die gerade am Anfang viele Dinge abnehmen kann, da man die Peripherals damit einfach grafisch konfigurieren kann. Das ist bei Prozessoren, dessen User Manual einige hundert Seiten ausmacht (oder auch für Umsteiger von 8bitter oder anderen 32bittern), nicht unwichtig. Der generierte Code ist template-basiert, gut lesbar und kann später - wenn man mehr Erfahrung hat, für eigene Entwicklungen weiter nutzen und optimieren. Damit verliert man dann allerdings die Möglichkeit, Updates der generierten Codes aus den Apps zu bekommen, die Infineon ebenfalls kostenfrei zur Verfügung stellt. Die Software nennt sich &#039;&#039;Digital Application Virtual Engineer&#039;&#039; ([http://www.infineon.com/dave DAVE]) und kann nach Registrierung kostenlos für Windows heruntergeladen werden. Innerhalb von Dave kann man dann Apps und viele Beispiele (ohne weitere Anmeldung und Kosten) komplett oder selektiv (für bestimmte Prozessoren) herunterladen. Die aktuell stabile Version ist v3. Es ist eine neue DAVE Umgebung v4 in Arbeit, eine Betaversion kann heruntergeladen werden. Diese neue v4 Variante wird auch ein separates SDK besitzen, um Apps für Dave selbst schreiben zu können (z.B. Bauteilhersteller, die die Anbindung an den XMC für Kunden vereinfachen wollen). Einsteiger sollten aber mit v3 beginnen, um nicht über Bugs der Beta v4 zu stolpern (siehe auch im [http://www.infineonforums.com/forums/8-XMC-Forum XMC-Forum]).&lt;br /&gt;
* &#039;&#039;&#039;NXP&#039;&#039;&#039; bietet für seine &#039;&#039;&#039;LPC&#039;&#039;&#039; Prozessorfamilien eine &amp;lt;u&amp;gt;kostenlose&amp;lt;/u&amp;gt; C/C++ Entwicklungsumgebung an. Die auf Eclipse basierende Entwicklungsumgebung ([http://www.lpcware.com/lpcxpresso LPCXpresso]) ist nach der Installation bis 8kB freigeschaltet und nach einer einfachen und kostenlosen Registrierung für 256kB. [http://www.lpcware.com/lpcxpresso LPCXpresso] steht für Windows, Linux und Mac zur Verfügung.&lt;br /&gt;
* &#039;&#039;&#039;ST&#039;&#039;&#039; bietet für seine &#039;&#039;&#039;STM32&#039;&#039;&#039; Prozessorfamilie eine &amp;lt;u&amp;gt;kostenlose&amp;lt;/u&amp;gt; C/C++ Entwicklungsumgebung an. Die auf Eclipse basierende Entwicklungsumgebung kann nach Registrierung auf der Homepage heruntergeladen werden. [http://www.openstm32.org/] &lt;br /&gt;
&lt;br /&gt;
Kommerzielle Entwicklungsumgebungen (zum Teil kostenlos mit Einschränkungen) für ARM-basierte Mikrocontroller sind z.&amp;amp;nbsp;B.:&lt;br /&gt;
* [http://timor.atollic.com/truestudio/ Atollic TrueStudio] (Windows), Eclipse-basierend inkl. Compiler und Linker für fast alle ARMs, jetzt auch kostenlos mit vielen Beispielen und ohne Codesize-Limitierung, dafür mit anderen Einschränkungen&lt;br /&gt;
* [http://www.cosmicsoftware.com/download_cortex_64k.php Cosmic Software] (Windows), bis 64kB kostenlos&lt;br /&gt;
* [http://rowley.co.uk/arm/ Crossworks ARM] (inkl. Toolchains basierend auf GCC und Clang, für Windows, Mac OS und Linux)&lt;br /&gt;
* [http://www.iar.com/ewarm/ IAR Embedded Workbench for ARM] (Windows)&lt;br /&gt;
* [http://www.keil.com/arm/ MDK-ARM von Keil/ARM] (Windows), Lite-Version bis 32kB kostenlos,&lt;br /&gt;
* [http://www2.keil.com/stmicroelectronics-stm32/mdk MDK-STM32 von KEIL] Speziell für STM32x0 kostenlos ohne Beschränkung &lt;br /&gt;
* [http://www.sisy.de/ SiSy MC++] (Windows), Demo-Version, keine Code-Begrenzung&lt;br /&gt;
&lt;br /&gt;
=== Compiler für sonstige Programmiersprachen ===&lt;br /&gt;
* Basic: http://www.mikroe.com/mikrobasic/arm/&lt;br /&gt;
* Pascal: http://www.mikroe.com/mikropascal/arm/&lt;br /&gt;
&lt;br /&gt;
=== Interpreter ===&lt;br /&gt;
* Forth: https://github.com/ekoeppen/CoreForth&lt;br /&gt;
* JavaScript: http://www.espruino.com/&lt;br /&gt;
* Lua: http://www.eluaproject.net/&lt;br /&gt;
&lt;br /&gt;
=== ARM/XSCALE/CORTEX Instruction Set Simulator ===&lt;br /&gt;
Die Firma Lauterbach bietet unter der Artikelnummer LA-8809 einen Instruction Set Simulator für ARM Cores an. Die Demoversion ist zur Evaluierung kostenlos. Einschränkungen bestehen in der Anzahl der zu ladenden Debugsymbole. Der Simulator unterstützt alle gängigen ARM Derivate und lädt alle üblichen Debugformate, wie die des RealView,  IAR und TI Compilers, oder der freien GCC Tools. Zum Simulator gibt es entsprechende zugehörige Debugtools, die allerdings käuflich zu erwerben sind.&lt;br /&gt;
&lt;br /&gt;
* [http://www.lauterbach.com/frames.html?dwnload.html Download ARM/XSCALE/CORTEX Simulator]&lt;br /&gt;
&lt;br /&gt;
== Debug- und Programmierschnittstellen (JTAG/SWD) ==&lt;br /&gt;
&lt;br /&gt;
Alle ARM-basierten Prozessoren verwenden ein einheitliches [[JTAG]]-Interface, über das Debugging und Speicherzugriff erfolgen kann. Nicht standardisiert sind allerdings die Verfahren zum Beschreiben des Flash-ROMs. Deshalb muss man beachten, ob die verwendete JTAG-Software Programmierroutinen für den jeweiligen Controller besitzt.&lt;br /&gt;
&lt;br /&gt;
SWD (Serial Wire Debug) ist eine neue mit den Cortex-Mikrocontrollern eingeführte Debug- und Programmierschnittstelle, die weniger Pins benötigt als JTAG. Hier wird Debug-Bandbreite bzw. Speed gegen mehr verfügbare Pins für in-circuit Debugging &amp;quot;getauscht&amp;quot;. Die meisten Controller der Cortex-M0 &amp;amp; M3 Serie können sowohl mittels JTAG als auch mittels SWD programmiert werden, es gibt allerdings auch Exemplare (z.B. [[EFM32]] von [https://www.silabs.com Silicon Labs], XMC1100 von [http://www.infineon.com/xmc Infineon]) welche nur SWD unterstützen.&lt;br /&gt;
&lt;br /&gt;
Eine Übersicht über die empfohlenen Steckerbelegungen für JTAG und SWD gibt ein [http://infocenter.arm.com/help/topic/com.arm.doc.faqs/attached/13634/cortex_debug_connectors.pdf Dokument von ARM].&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus gibt es noch herstellerspezifische Schnittstellen wie SPD (Single Pin Debug) von Infineon, oder vorinstallierte serielle Bootloader, z.B. beim [[STM32]] oder auch bei den [[Infineon XMC]], die dann z.B. über ein eigenes [http://www.infineon.com/cms/de/product/microcontroller/development-tools-software-and-kits/c166/xc166-development-tools-software-and-kits/software-downloads/channel.html?channel=ff80808112ab681d0112ab6b50fe07c9 Tool] ohne weitere Hardware - abgesehen von einem handelsüblichen seriellen Schnittstellenadapter - programmiert werden können. &lt;br /&gt;
&lt;br /&gt;
Viele Entwicklungsboards enthalten auch einen On-Board-Debugadapter zum direkten Anschluss an USB, so dass kein externer SWD- oder JTAG-Adapter notwendig ist. Manche erlauben auch, diesen Adapter abzubrechen und für eigene Entwicklungen weiterzuverwenden, somit ist nach dem Kauf eines Eval-Kits nicht nötig, einen weiteren Adapter später nachzukaufen.&lt;br /&gt;
&lt;br /&gt;
=== Günstige Beispiele zum Einstieg ===&lt;br /&gt;
Ein einfacher JTAG-Adapter für den Parallelport ist der &amp;quot;Wiggler&amp;quot;-kompatible, den man auch einfach selbst bauen kann. Als Software lässt sich unter Windows und Linux [http://openocd.berlios.de/ OpenOCD] (zusammen mit [[GDB]]) oder [http://rowley.co.uk Crossworks ARM] verwenden.  Für USB gibt es ebenfalls OpenOCD-kompatible JTAG-Adapter.&lt;br /&gt;
&lt;br /&gt;
Von NXP sind preiswerte Entwicklungskits (ca. 25€ für Evaluation-Board incl. USB-JTAG-/-SWD-Programer und Debugger) erhältlich z.B. &#039;&#039;&#039;[http://www.watterott.com/index.php?page=search&amp;amp;keywords=LPCXpresso&amp;amp;cat=&amp;amp;mnf=&amp;amp;x=0&amp;amp;y=0 Watterott]&#039;&#039;&#039;. Siehe dazu auch die Dokumentation von NXP zu den &#039;&#039;&#039;[http://www.nxp.com/documents/leaflet/75016842.pdf LPCXpresso-Entwicklungskits]&#039;&#039;&#039; (PDF), oder diese &#039;&#039;&#039;[http://www.mikrocontroller.net/wikisoftware/index.php?title=LPC1xxx_Entwicklungskit_LPCXpresso Beschreibung]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Von ST gibt es günstige MBED/Arduino kompatible Nucleo Entwicklungskits (ca. 12€) z.B. &#039;&#039;&#039;[http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1847/PF260320?s_searchtype=partnumber]&#039;&#039;&#039;. Der integrierte ST-Link Debugger kann mittels SWD und OpenOCD als Software auch andere Chip programmieren. Die etwas teuereren Discoveryboards, z.B. &#039;&#039;&#039;[http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF260946?s_searchtype=partnumber]&#039;&#039;&#039;, haben mehr externe Bauteile on-board, während die Nucleo Board über Shields erweiterbar sind. Nur bei Nucleo Boards ist eine UART Schnittstelle als Standard über USB zu erreichen, bei Discovery Boards mit ST-Link V2-1 müssen Lötbrücken gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Auch Infineon bietet Arduino-kompatible Boards+Shields mit dem XMC1100 Prozessor und angeflanschtem Debugger an (ab ca. 16€). Weiters gibt es günstige XMC4500 Kits, die auch Ethernet, SPI-Flash und SDCard-Slot Optionen bieten. Am unteren Ende gibt es ein XMC1100 Kit samt Debugger ab ca. 5€, dieses Board für den Schlüsselbund sozusagen nennt sich treffend &amp;quot;XMC 2 Go&amp;quot;. Die Preise können je nach Distributor stark variieren.&lt;br /&gt;
Siehe auch hier &#039;&#039;&#039;[http://www.infineon.com/cms/de/product/microcontroller/32-bit-industrial-microcontroller-based-on-arm-registered-cortex-registered-m/xmc-development-tools-kits-and-boards/channel.html?channel=db3a30433580b3710135a07902883872 XMC-Starter-Kits]&#039;&#039;&#039;.&lt;br /&gt;
Des weiteren werden auch schon Kits in Verbindung mit Sensoren zum Evaluieren angeboten, wie das &amp;quot;3D 2 Go&amp;quot; Board mit einem XMC1100 Prozessor und dem neuen 3D-Magnetfeldsensor von Infineon, um ein Beispiel zu nennen: &#039;&#039;&#039;[http://www.infineon.com/cms/en/product/sensor-ics/magnetic-sensors/3d-magnetic-sensor/channel.html?channel=5546d4624c9e0f0e014c9e105a8a001c 3D-Sensorkit]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Von Silicon Labs gibt es [https://www.silabs.com/products/mcu/Pages/32-bit-microcontroller-tools.aspx Starter Kits] mit integriertem J-Link (Debugger) ab ca. 25 € z.B. das [https://www.silabs.com/products/mcu/lowpower/Pages/efm32tg-stk3300.aspx EFM32 Tiny Gecko Starter Kit] bei [http://www.mouser.de/ProductDetail/Silicon-Laboratories/EFM32TG-STK3300/?qs=%2fha2pyFadujBGJvO8YBq9JikBLXQGi%2fjwmF17imXuts5383tWpQKFA%3d%3d Mouser]&lt;br /&gt;
&lt;br /&gt;
Der [http://www.segger.com/cms/jlink.html J-Link]-&amp;quot;Emulator&amp;quot; von Segger wird von vielen Softwarepaketen unterstützt und ist für den &amp;quot;nicht-kommerziellen&amp;quot; Einsatz von Studenten, Funkamateuren und Hobby-Bastler für ca. €50.- erhältlich (J-Link-Edu). Sein Umfang ist auf das Flashen des Speichers und das Debuggen beschränkt. Bonus: Neben den im Prozessor limitiert vorhandenen Hardware-Breakpoints (Anzahl ist MCU abhängig) sind zusätzliche Flash-Breakpoints möglich (müssen aber von der verwendeten Debug-IDE unterstüzt werden). Die sehr gut geplegte Debugger-Software unterstützt nahezu alle ARM Prozessoren. Die Trace-Option wie sie bei der PRO-Variante zur Verfügung steht, ist nicht vorhanden. Für den Preis bekommt man jedoch ein ausgewachsenes Werkzeug mit breiter Unterstützung und der Möglichkeit sowohl SWD als auch JTAG in einem Gerät vereint zu haben. Wenn man aber plant, ein oben genanntes Kit von ST, NXP, Infineon oder ähnlich zu kaufen kann man für ähnliche Kosten auch gleich ein CPU-Board dazubekommen - daher ist es sinnvoll, sich die Dokumentationen der Evalkits voher genau durchzusehen. &lt;br /&gt;
&lt;br /&gt;
Der ULINK2 von Keil/ARM ist ebenfalls ein wirklich gutes Gerät. Leider ist er nicht ganz so günstig und seine Zusammenarbeit beschränkt sich auf die Arm/Keil IDE µVision. Er benötigt jedoch keine speziellen USB-Treiber sondern nutzt geschickt die Funktionalität der HID-Treiber des Betriebssystems. Das macht ihn sofort auf jedem Windows-Betriebssystem einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
Als Alternative zum Beschreiben des Flash über JTAG ist oft ein serieller [[Bootloader]] im Controller enthalten. Bei ST werden sie über einen speziellen Pin der MPU aktiviert und sind dank Kompression und das intelligente entfernen redundanter Information, bei der Übertragung genauso schnell wie JTAG/SWD Adapter.&lt;br /&gt;
&lt;br /&gt;
== CMSIS - ARM Cortex Software Libraries  ==&lt;br /&gt;
 &lt;br /&gt;
Der ARM Cortex Microcontroller Software Interface Standard (CMSIS) ist ein herstellerunabhängiger Hardware Abstraction Layer für die Cortex-M-Prozessor -Serie. Dieser ermöglicht konsistente und einfache Software-Schnittstellen für den Prozessor und die Peripherie, und vereinfacht damit die Software-Wiederverwendung. &lt;br /&gt;
&lt;br /&gt;
CMSIS besteht aus folgenden Komponenten:&lt;br /&gt;
&lt;br /&gt;
* CMSIS-CORE: Bietet eine Schnittstelle zum Cortex-M0, Cortex-M3, Cortex-M4, SC000 und SC300-Prozessorkern und Peripherie-Registern.&lt;br /&gt;
* CMSIS-DSP: DSP-Bibliothek mit über 60 Funktionen in Festkomma-(fractional q7, q15, q31) und single precision floating-point (32-bit)-Implementierung&lt;br /&gt;
* CMSIS-RTOS API: Standardisierte Programmierschnittstelle für Echtzeit-Betriebssysteme für Thread-Steuerung, Ressourcen-und Zeitmanagement. Implementierungen gibt es z.B. von Keil ([http://www.keil.com/pack/doc/cmsis_rtx/index.html RTX])&lt;br /&gt;
* CMSIS-SVD: System View Beschreibung -  XML-Dateien, die die Programmiereransicht des kompletten Mikrocontroller-Systems einschließlich Peripheriegeräte enthalten&lt;br /&gt;
&lt;br /&gt;
Der Standard ist für Cortex-M-Mikrocontroller skalierbar: Von der  kleinsten 4 KB MCU bis zu MCUs mit anspruchsvoller Kommunikations-Peripherie wie Ethernet oder USB. Die &amp;quot;Core Peripheral Funktionen&amp;quot; benötigt beispielsweise weniger als 1 KB-Code und weniger als 10 Bytes RAM.&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* Software Beispiele von [http://www.energymicro.com/downloads/application-notes Energy Micro] basierend auf CMSIS&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen auf der [http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php ARM CMSIS Webseite].&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Linksammlung#ARM|Linksammlung (Abschnitt ARM)]]&lt;br /&gt;
* [[LPC1xxx]]&lt;br /&gt;
* [[LPC1xxx_Entwicklungskit_LPCXpresso]]&lt;br /&gt;
* [[Installationsanleitung_C-Entwicklungsumgebung_f%C3%BCr_LPC1xxx_von_Code_Red]]&lt;br /&gt;
* [[Codebase_f%C3%BCr_LPC1xxx]]&lt;br /&gt;
* [[ARM-elf-GCC-Tutorial]]&lt;br /&gt;
* [[AVR32]]&lt;br /&gt;
* [[Blackfin]]&lt;br /&gt;
* [[AT91SAM9260]]&lt;br /&gt;
* [[STM32]]&lt;br /&gt;
* [[JTAG]]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 EFM32]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/STM32_-_Einstieg_mit_Em::Blocks STM32 - Einstieg mit Em::Blocks Tutorial]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.mySTM32.de Online Tutorial für den STM32]&lt;br /&gt;
* [http://www.myXMC.de Online Tutorial für den XMC von Infineon]&lt;br /&gt;
* [http://www.myUGL.de Online Tutorial für freie Grafikbibliothek, STM32, STM32F429, TFT, Touch]&lt;br /&gt;
* [http://embdev.net/forum/arm-gcc ARM-GCC Forum] im englischsprachigen &amp;quot;Ableger&amp;quot; von mikrocontroller.net embdev.net u.a. für WinARM, Yagarto, CS Codebench&lt;br /&gt;
* [http://www.arm.com/products/processors/cortex-m/index.php Cortex-M Produktseite von ARM]&lt;br /&gt;
* [http://infocenter.arm.com/help/index.jsp Infocenter von ARM Ltd.]&lt;br /&gt;
* [http://www.open-research.org.uk/ARMuC/ ARMuC ARM microcontroller Wiki]&lt;br /&gt;
* [http://chaosradio.ccc.de/cre151.html Chaosradio Express - Die ARM-Architektur]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
*ARM Systems Developer&#039;s Guide (2004) ISBN 1558608745 [http://books.google.de/books?id=HKKUkDQE17QC&amp;amp;output=html Im Buch blättern] [http://booksite.elsevier.com/9781558608740/ Programmbeispiele aus dem Buch, u.a. FFT, FIR/IIR-Filter, Division, Wurzel]&lt;br /&gt;
*ARM Assembly Language - an Introduction (2007) ISBN 1847536964 [http://books.google.de/books?id=8KJX5R8mMvsC&amp;amp;output=html Im Buch blättern]   [http://www.lulu.com/content/1172076 Verlagsseite &amp;quot;Book on demand&amp;quot;]&lt;br /&gt;
*ARM Rechnerarchitekturen für System-on-Chip-Design (2002) ISBN 3826608542&lt;br /&gt;
*Co-Verification of Hardware and Software for Arm Soc Design (2004) ISBN 0750677309&lt;br /&gt;
*ARM System-on-Chip Architecture (2000) ISBN 0201675196 [http://books.google.de/books?id=J_Fu_YTVD9gC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*ARM Architecture Reference Manual ISBN 0201737191 [http://books.google.de/books?id=O5G-6WX1xWsC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*Messen, Steuern und Regeln mit ARM-Mikrocontrollern ISBN 3772340172 [http://books.google.de/books?id=TKs4kN-zNYQC&amp;amp;output=html im Buch blättern]&lt;br /&gt;
*Programming Arm Microcontrollers: Using C and the Lpc2100 Family (2005? /ab 1. Dezember 2008) ISBN 0321263359&lt;br /&gt;
*Arm Assembly: Fundamentals and Techniques (ab 1. März 2009) ISBN 1439806101&lt;br /&gt;
*Reliable Embedded Systems: Using 8051 and ARM Microcontrollers (2007) ISBN 0321252918 600 Seiten mit CD [http://vig.pearsoned.co.uk/catalog/academic/product/0,1144,0321252918-TOC,00.html Inhaltsverzeichnis]&lt;br /&gt;
* C und C++ für Embedded Systems (u.a. ARM Cortex-M3) mitp-Verlag 2008 ISBN 382665949X&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M0 (Joseph Yiu) Newnes Verlag ISBN 0123854776&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M3 (Joseph Yiu) Newnes Verlag ISBN 185617963X&lt;br /&gt;
&lt;br /&gt;
== Artikel aus der Kategorie ARM ==&lt;br /&gt;
&amp;lt;ncl style=compact maxdepth=2 headings=bullet headstart=2&lt;br /&gt;
      showcats=1 showarts=1&amp;gt;ARM&amp;lt;/ncl&amp;gt;&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 &#039;&#039;&#039;EFM32&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/XMCxxxx &#039;&#039;&#039;Infineon XMCxxxx&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [https://www.mikrocontroller.net/articles/Cortex-A ARM Cortex A]&lt;br /&gt;
&lt;br /&gt;
[[Category:ARM| ]]&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94979</id>
		<title>ARM Cortex Mikrocontroller</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94979"/>
		<updated>2017-01-20T16:48:52Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Firma ARM stellt selbst keine Prozessoren/Controller her, sondern entwickelt nur sogenannte &amp;quot;IP-Cores&amp;quot;, die von Herstellern wie Atmel, Infineon, ST, NXP, TI und vielen anderen lizenziert werden. Diese Hersteller ergänzen den Core um Speicher und Peripherie. Der Vorteil dieses Modells ist, dass dadurch sehr viele Prozessoren mit unterschiedlichster Ausstattung verfügbar sind, die alle mit dem selben Befehlssatz (und damit dem selben Compiler) programmierbar sind.&lt;br /&gt;
&lt;br /&gt;
Allen ARM-Cores gemeinsam ist die 32 Bit RISC-Architektur. Für diese gibt es den klassischen 32bit ARM Befehlssatz und den zusätzlichen, kleineren 16/32 Bit &#039;&#039;&#039;Thumb&#039;&#039;&#039;-Befehlssatz. Die verschiedenen Prozessoren/Controller unterstützen einen oder beide davon. Thumb-fähige Controller sind erkennbar am &#039;&#039;&#039;T&#039;&#039;&#039; in der Bezeichnung, z.&amp;amp;nbsp;B. ARM7&#039;&#039;&#039;T&#039;&#039;&#039;DMI. Thumb kodiert die meisten Instruktionen in 16bit, den Rest in 32bit, was in einem kleineren Prozessor und geringenem Platzbedarf des Codes resultiert [http://www.arm.com/files/pdf/ARM_Microcontroller_Code_Size_%28full%29.pdf]; der Nachteil ist die etwas niedrigere Geschwindigkeit. Die Cortex-M Kerne unterstützen ausschließlich den Thumb2-Befehlssatz.&lt;br /&gt;
&lt;br /&gt;
Seit einigen Jahren sind ARM-basierte Mikrocontroller erhältlich, die aufgrund der vergleichbar einfachen Beschaltung und niedrigem Stromverbrauch eine echte Alternative zu 8-Bit-Controllern wie dem [[AVR]] darstellen. Die ersten Controller mit diesen Eigenschaften verwendeten den ARM7TDMI-Kern (zB. LPC2000) (ARMv4T-Architektur). Mittlerweile wurden diese vom Cortex M-Kern abgelöst (ARMv6M, ARMv7M-Architektur), welcher in verschiedenen Varianten für verschiedene Einsatzzwecke verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In diesem Artikel geht es primär um die ARM Cortex-M Mikrocontroller, weniger um ARM [[Cortex-A]] Prozessoren, welche in Smartphones, [[Raspberry Pi]] u.ä. eingesetzt werden.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Varianten des Cortex-M Mikrocontroller-Kerns, aufgeführt vom energieeffizientesten zum leistungsfähigsten (Liste nicht unbedingt aktuell! Am besten immer die Herstellerseiten bemühen).&lt;br /&gt;
&lt;br /&gt;
sgdzg&lt;br /&gt;
&lt;br /&gt;
sdg&lt;br /&gt;
&lt;br /&gt;
== ARM Cortex M4 ==&lt;br /&gt;
Als hoch performante Variante gibt es dann noch die Cortex-M4 Cores welche im Kern aus einem Cortex-M3 mit zusätzlichen [[DSP]]-Funktionen und teilweise einer (single precision) FPU bestehen. &lt;br /&gt;
&lt;br /&gt;
Diese werden beispielsweise in folgenden Controllern eingesetzt:&lt;br /&gt;
* [http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/kinetis-cortex-m-mcus:KINETIS Kinetis Series] von Freescale (jetzt NXP)&lt;br /&gt;
* [http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/lpc-cortex-m-mcus/lpc-cortex-m4/lpc4300-cortex-m4-m0:MC_1403790133078 LPC43xx] von [http://www.nxp.com/ NXP] (Dual Core: M4F + bis zu 2 Cortex-M0)&lt;br /&gt;
* [http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/lpc-cortex-m-mcus/lpc-cortex-m4/lpc54000-low-power-cortex-m4:MC_1414576688124 LPC54xxx] von [http://www.nxp.com/ NXP] (Dual Core: M4F + bis zu einem Cortex-M0+)&lt;br /&gt;
* [http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/lpc-cortex-m-mcus/lpc-cortex-m4/lpc4000-cortex-m4:MC_1403790399405 LPC4xxx] von [http://www.nxp.com/ NXP]&lt;br /&gt;
* [http://www.silabs.com/products/mcu/32-bit/efm32-wonder-gecko/pages/efm32-wonder-gecko.aspx EFM32-Wonder Gecko] von [http://www.silabs.com Silicon Labs], siehe &#039;&#039;&#039;[[EFM32|EFM32 hier im Wiki]]&#039;&#039;&#039;&lt;br /&gt;
* [http://www.st.com/internet/mcu/subclass/1605.jsp STM32F3] von [http://www.st.com STMicro], siehe &#039;&#039;&#039;[[STM32|STM32 hier im Wiki]]&#039;&#039;&#039;&lt;br /&gt;
* [http://www.st.com/internet/mcu/subclass/1521.jsp?WT.ac=p2_bn_jun12_stm32f4series STM32F4] von [http://www.st.com STMicro], siehe &#039;&#039;&#039;[[STM32|STM32 hier im Wiki]]&#039;&#039;&#039;&lt;br /&gt;
* [http://www.ti.com/lsds/ti/microcontroller/tiva_arm_cortex/c_series/tm4c_arm_cortex-m4/overview.page Tiva C Series, TM4C] von [http://www.ti.com Texas Instruments]. Früher nannte Texas Instruments diese Controller &#039;&#039;Stellaris LM4F Series&#039;&#039;. 2013 begann TI mit einer große Umbenennung, bei der sogar neue Typenbezeichnung vergeben wurden. So wurde zum Beispiel aus dem LM4F230H5QR der TM4C123GH6PM. Gleichzeitig begann TI die Bezeichnung &#039;&#039;Stellaris&#039;&#039; aus Datenblättern, Software-Bibliotheken und Ähnlichem zu entfernen und durch &#039;&#039;Tiva&#039;&#039; zu ersetzen. Siehe auch [http://www.ti.com/lit/an/spma050a/spma050a.pdf].&lt;br /&gt;
* [http://www.infineon.com/XMC4000 XMC4000] von [http://www.infineon.com Infineon],  siehe &#039;&#039;&#039;[[XMCxxxx|XMCxxxx hier im Wiki]]&#039;&#039;&#039;, [[XMC4500|Artikel zum XMC4500]]&lt;br /&gt;
* [http://www.spansion.com/Products/microcontrollers/32-bit-ARM-Core/fm4/Pages/default.aspx FM4] von [http://www.spansion.com Spansion] (vormals Fujitsu)&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/arm/sam4l.aspx SAML] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/arm/sam4e.aspx SAME] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/arm/sam4n.aspx SAMN] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/arm/sam4s.aspx SAMS] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
&lt;br /&gt;
== ARM Cortex M7 ==&lt;br /&gt;
&lt;br /&gt;
Die neueste Variante der Cortex M-Reihe ist der M7, bei dem gegenüber dem M4 zahlreiche Features hinzukommen die die Brücke zu Anwendungsprozessoren schlagen: eine double precision-FPU, Code- und Daten-Cache, eine 6-stufige Pipeline mit Sprungvorhersage, und unterm Strich eine deutlich höhere Rechenleistung. Controller basierend auf dem Cortex M7 sind u.a. von Atmel, NXP und ST erhältlich. &lt;br /&gt;
&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/ARM/SAM-E.aspx SAME] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/ARM/SAM-S.aspx SAMS] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/ARM/SAM-V.aspx SAMV] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/ARM/sam7s_se.aspx SAM7S/SE] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/ARM/sam7x_xc.aspx SAM7X/XC] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.st.com/web/en/catalog/mmc/SC1169/SS1858 Produktseite der STM32F7-Serie von ST]&lt;br /&gt;
&lt;br /&gt;
== ARM7TDMI ==&lt;br /&gt;
Der Vorgänger der Cortex-M-Cores ist der &#039;&#039;&#039;ARM7&#039;&#039;&#039;TDMI. Controllerfamilien dieser Klasse sind immer noch weit verbreitet:&lt;br /&gt;
* NXP (ehemals Philips) [[LPC2000]] &lt;br /&gt;
* Atmel [[AT91SAM]]7&lt;br /&gt;
* Analog Devices [[ADuC7xxx]]&lt;br /&gt;
* [http://focus.ti.com/mcu/docs/mcuprodoverview.tsp?sectionId=95&amp;amp;tabId=203&amp;amp;familyId=454 Texas Instruments TMS470]&lt;br /&gt;
* SAMSUNG S3C24x0 [http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=229&amp;amp;partnum=S3C2410]&lt;br /&gt;
* STR7xx von ST Microelectronics [http://www.st.com/mcu/inchtml-pages-str7.html]&lt;br /&gt;
* und viele weitere&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen zur ARM-Architektur finden sich in der [http://de.wikipedia.org/wiki/ARM-Architektur Wikipedia], weiterführende Links in der [[Linksammlung#ARM|Linksammlung]].&lt;br /&gt;
&lt;br /&gt;
== Compiler &amp;amp; Software ==&lt;br /&gt;
&lt;br /&gt;
=== [[ARM_GCC|GCC]] ===&lt;br /&gt;
Einer der beliebtesten Compiler für ARM-Prozessoren ist der GCC. Er kann sowohl ARM- als auch Thumb-Code erzeugen. Mehr dazu unter [[ARM GCC]].&lt;br /&gt;
&lt;br /&gt;
=== C/C++ IDEs ===&lt;br /&gt;
Kostenlose Entwicklungsumgebungen (überwiegend GCC-basiert):&lt;br /&gt;
* [http://www.coocox.org/software.html CooCox IDE] (Eclipse basierend)&lt;br /&gt;
* [https://gnuarmeclipse.github.io GNU ARM Eclipse] (Eclipse Plugin)&lt;br /&gt;
* [http://www.emblocks.org/web/ EmBlocks IDE] (Basiert auf Code::Blocks)&lt;br /&gt;
** Compiler: GNU ARM-GCC (in der Installation enthalten), RealView und IAR &lt;br /&gt;
** Hardware: STlink (mit &amp;quot;Live data&amp;quot;), openOCD, Jlink. &lt;br /&gt;
** Project Import: CoIDE, uVision, Atmel studio, MplabX, Mplab 8&lt;br /&gt;
** OS aware debugging &lt;br /&gt;
***FreeRTOS&lt;br /&gt;
***ChibiOS/RT  &lt;br /&gt;
** Unterstützt sehr viele Controller(-Hersteller):&lt;br /&gt;
***Atmel-ARM&lt;br /&gt;
***NXP-ARM&lt;br /&gt;
***STMicro-ARM&lt;br /&gt;
***EnergyMicro-ARM&lt;br /&gt;
**Keine Beschränkungen&lt;br /&gt;
**Hier gehts zum &#039;&#039;[http://www.emblocks.org/web/downloads-main Download]&#039;&#039;&#039;&lt;br /&gt;
* [http://www.emide.org/ emIDE] Windows, komplette Visual Studio artige Entwicklungsumgebung (basierend auf Code::Blocks) mit GCC und Debugger (Unterstützung für Adapter von Segger) &amp;lt;!-- Projekt eines Segger Mitarbeiters --&amp;gt;&lt;br /&gt;
* [https://mbed.org mbed]: eine kostenlose Online-Entwicklungsumgebung basierend auf dem ARM Realview-Compiler, mit einer umfangreichen C++-Bibliothek für die Controllerfunktionen, integrierter Versionsverwaltung, und vielen Beispielprogrammen. Projekte lassen sich für Keil/IAR/GCC exportieren und offline weiterbearbeiten; die Bibliotheksfunktionen sind Open Source und auch kommerziell einsetzbar.&lt;br /&gt;
* [http://www.isystem.com/products/software/winidea-open winIDEAOpen]Die Fa. iSystem stellt mit der winIDEAOpen nun eine kostenlose Entwicklungsumgebung für alle Cortex-M Bauteile zur Verfügung. Als Compiler wird der GNU GCC verwendet und auch gleich mitinstalliert. Die IDE ist recht intuitiv und mit einer umfangreichen Hilfe ausgestattet. Das Ganze funktioniert mit dem &amp;lt;u&amp;gt;GCC ohne Codesize Limit&amp;lt;/u&amp;gt; und auch ein Testwerkzeug (testIDEA) ist mit integriert. Hardwareseitig werden neben dem iSystem iTag50 [http://www.isystem.com/products/hardware/cortex-debugger/itag] auch die Segger J-Link Debug Probes sowie der ST-Link von ST unterstützt. Auf der Webseite von iSystem sind auch einige schöne Beispielprojekte für diverse Boards zu finden [http://www.isystem.com/download/winideaopen]. Demnächst soll noch die Unterstützung für die ARM und IAR Compiler hinzuzkommen. Hier gehts zum &#039;&#039;[http://www.isystem.com/download/winideaopen Download]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Infineon&#039;&#039;&#039; bietet für seine &#039;&#039;&#039;XMC&#039;&#039;&#039; Prozessorfamilien auch eine kostenlose, professionell gepflegte C/C++ Entwicklungsumgebung an, ohne Einschränkungen auf bestimmte Typen oder Speichergrößen - &amp;lt;u&amp;gt;alle erhältlichen XMC 1000er und 4000er Prozessoren werden unterstützt&amp;lt;/u&amp;gt;. Wenn man sich dazu noch eines der günstigen XMC Evaluierungsboards besorgt (XMC 1100 Bootkit, XMC 4500 Relax (lite) Kit o.ä.), hat man ein erstes Entwicklungssystem inklusive wiederverwendbaren HW-Debugger zur Verfügung. Die Entwicklungsumgebung basiert auf Eclipse, besitzt aber zahlreiche Erweiterungen samt Codegenerierung (sogenannte Apps), die gerade am Anfang viele Dinge abnehmen kann, da man die Peripherals damit einfach grafisch konfigurieren kann. Das ist bei Prozessoren, dessen User Manual einige hundert Seiten ausmacht (oder auch für Umsteiger von 8bitter oder anderen 32bittern), nicht unwichtig. Der generierte Code ist template-basiert, gut lesbar und kann später - wenn man mehr Erfahrung hat, für eigene Entwicklungen weiter nutzen und optimieren. Damit verliert man dann allerdings die Möglichkeit, Updates der generierten Codes aus den Apps zu bekommen, die Infineon ebenfalls kostenfrei zur Verfügung stellt. Die Software nennt sich &#039;&#039;Digital Application Virtual Engineer&#039;&#039; ([http://www.infineon.com/dave DAVE]) und kann nach Registrierung kostenlos für Windows heruntergeladen werden. Innerhalb von Dave kann man dann Apps und viele Beispiele (ohne weitere Anmeldung und Kosten) komplett oder selektiv (für bestimmte Prozessoren) herunterladen. Die aktuell stabile Version ist v3. Es ist eine neue DAVE Umgebung v4 in Arbeit, eine Betaversion kann heruntergeladen werden. Diese neue v4 Variante wird auch ein separates SDK besitzen, um Apps für Dave selbst schreiben zu können (z.B. Bauteilhersteller, die die Anbindung an den XMC für Kunden vereinfachen wollen). Einsteiger sollten aber mit v3 beginnen, um nicht über Bugs der Beta v4 zu stolpern (siehe auch im [http://www.infineonforums.com/forums/8-XMC-Forum XMC-Forum]).&lt;br /&gt;
* &#039;&#039;&#039;NXP&#039;&#039;&#039; bietet für seine &#039;&#039;&#039;LPC&#039;&#039;&#039; Prozessorfamilien eine &amp;lt;u&amp;gt;kostenlose&amp;lt;/u&amp;gt; C/C++ Entwicklungsumgebung an. Die auf Eclipse basierende Entwicklungsumgebung ([http://www.lpcware.com/lpcxpresso LPCXpresso]) ist nach der Installation bis 8kB freigeschaltet und nach einer einfachen und kostenlosen Registrierung für 256kB. [http://www.lpcware.com/lpcxpresso LPCXpresso] steht für Windows, Linux und Mac zur Verfügung.&lt;br /&gt;
* &#039;&#039;&#039;ST&#039;&#039;&#039; bietet für seine &#039;&#039;&#039;STM32&#039;&#039;&#039; Prozessorfamilie eine &amp;lt;u&amp;gt;kostenlose&amp;lt;/u&amp;gt; C/C++ Entwicklungsumgebung an. Die auf Eclipse basierende Entwicklungsumgebung kann nach Registrierung auf der Homepage heruntergeladen werden. [http://www.openstm32.org/] &lt;br /&gt;
&lt;br /&gt;
Kommerzielle Entwicklungsumgebungen (zum Teil kostenlos mit Einschränkungen) für ARM-basierte Mikrocontroller sind z.&amp;amp;nbsp;B.:&lt;br /&gt;
* [http://timor.atollic.com/truestudio/ Atollic TrueStudio] (Windows), Eclipse-basierend inkl. Compiler und Linker für fast alle ARMs, jetzt auch kostenlos mit vielen Beispielen und ohne Codesize-Limitierung, dafür mit anderen Einschränkungen&lt;br /&gt;
* [http://www.cosmicsoftware.com/download_cortex_64k.php Cosmic Software] (Windows), bis 64kB kostenlos&lt;br /&gt;
* [http://rowley.co.uk/arm/ Crossworks ARM] (inkl. Toolchains basierend auf GCC und Clang, für Windows, Mac OS und Linux)&lt;br /&gt;
* [http://www.iar.com/ewarm/ IAR Embedded Workbench for ARM] (Windows)&lt;br /&gt;
* [http://www.keil.com/arm/ MDK-ARM von Keil/ARM] (Windows), Lite-Version bis 32kB kostenlos,&lt;br /&gt;
* [http://www2.keil.com/stmicroelectronics-stm32/mdk MDK-STM32 von KEIL] Speziell für STM32x0 kostenlos ohne Beschränkung &lt;br /&gt;
* [http://www.sisy.de/ SiSy MC++] (Windows), Demo-Version, keine Code-Begrenzung&lt;br /&gt;
&lt;br /&gt;
=== Compiler für sonstige Programmiersprachen ===&lt;br /&gt;
* Basic: http://www.mikroe.com/mikrobasic/arm/&lt;br /&gt;
* Pascal: http://www.mikroe.com/mikropascal/arm/&lt;br /&gt;
&lt;br /&gt;
=== Interpreter ===&lt;br /&gt;
* Forth: https://github.com/ekoeppen/CoreForth&lt;br /&gt;
* JavaScript: http://www.espruino.com/&lt;br /&gt;
* Lua: http://www.eluaproject.net/&lt;br /&gt;
&lt;br /&gt;
=== ARM/XSCALE/CORTEX Instruction Set Simulator ===&lt;br /&gt;
Die Firma Lauterbach bietet unter der Artikelnummer LA-8809 einen Instruction Set Simulator für ARM Cores an. Die Demoversion ist zur Evaluierung kostenlos. Einschränkungen bestehen in der Anzahl der zu ladenden Debugsymbole. Der Simulator unterstützt alle gängigen ARM Derivate und lädt alle üblichen Debugformate, wie die des RealView,  IAR und TI Compilers, oder der freien GCC Tools. Zum Simulator gibt es entsprechende zugehörige Debugtools, die allerdings käuflich zu erwerben sind.&lt;br /&gt;
&lt;br /&gt;
* [http://www.lauterbach.com/frames.html?dwnload.html Download ARM/XSCALE/CORTEX Simulator]&lt;br /&gt;
&lt;br /&gt;
== Debug- und Programmierschnittstellen (JTAG/SWD) ==&lt;br /&gt;
&lt;br /&gt;
Alle ARM-basierten Prozessoren verwenden ein einheitliches [[JTAG]]-Interface, über das Debugging und Speicherzugriff erfolgen kann. Nicht standardisiert sind allerdings die Verfahren zum Beschreiben des Flash-ROMs. Deshalb muss man beachten, ob die verwendete JTAG-Software Programmierroutinen für den jeweiligen Controller besitzt.&lt;br /&gt;
&lt;br /&gt;
SWD (Serial Wire Debug) ist eine neue mit den Cortex-Mikrocontrollern eingeführte Debug- und Programmierschnittstelle, die weniger Pins benötigt als JTAG. Hier wird Debug-Bandbreite bzw. Speed gegen mehr verfügbare Pins für in-circuit Debugging &amp;quot;getauscht&amp;quot;. Die meisten Controller der Cortex-M0 &amp;amp; M3 Serie können sowohl mittels JTAG als auch mittels SWD programmiert werden, es gibt allerdings auch Exemplare (z.B. [[EFM32]] von [https://www.silabs.com Silicon Labs], XMC1100 von [http://www.infineon.com/xmc Infineon]) welche nur SWD unterstützen.&lt;br /&gt;
&lt;br /&gt;
Eine Übersicht über die empfohlenen Steckerbelegungen für JTAG und SWD gibt ein [http://infocenter.arm.com/help/topic/com.arm.doc.faqs/attached/13634/cortex_debug_connectors.pdf Dokument von ARM].&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus gibt es noch herstellerspezifische Schnittstellen wie SPD (Single Pin Debug) von Infineon, oder vorinstallierte serielle Bootloader, z.B. beim [[STM32]] oder auch bei den [[Infineon XMC]], die dann z.B. über ein eigenes [http://www.infineon.com/cms/de/product/microcontroller/development-tools-software-and-kits/c166/xc166-development-tools-software-and-kits/software-downloads/channel.html?channel=ff80808112ab681d0112ab6b50fe07c9 Tool] ohne weitere Hardware - abgesehen von einem handelsüblichen seriellen Schnittstellenadapter - programmiert werden können. &lt;br /&gt;
&lt;br /&gt;
Viele Entwicklungsboards enthalten auch einen On-Board-Debugadapter zum direkten Anschluss an USB, so dass kein externer SWD- oder JTAG-Adapter notwendig ist. Manche erlauben auch, diesen Adapter abzubrechen und für eigene Entwicklungen weiterzuverwenden, somit ist nach dem Kauf eines Eval-Kits nicht nötig, einen weiteren Adapter später nachzukaufen.&lt;br /&gt;
&lt;br /&gt;
=== Günstige Beispiele zum Einstieg ===&lt;br /&gt;
Ein einfacher JTAG-Adapter für den Parallelport ist der &amp;quot;Wiggler&amp;quot;-kompatible, den man auch einfach selbst bauen kann. Als Software lässt sich unter Windows und Linux [http://openocd.berlios.de/ OpenOCD] (zusammen mit [[GDB]]) oder [http://rowley.co.uk Crossworks ARM] verwenden.  Für USB gibt es ebenfalls OpenOCD-kompatible JTAG-Adapter.&lt;br /&gt;
&lt;br /&gt;
Von NXP sind preiswerte Entwicklungskits (ca. 25€ für Evaluation-Board incl. USB-JTAG-/-SWD-Programer und Debugger) erhältlich z.B. &#039;&#039;&#039;[http://www.watterott.com/index.php?page=search&amp;amp;keywords=LPCXpresso&amp;amp;cat=&amp;amp;mnf=&amp;amp;x=0&amp;amp;y=0 Watterott]&#039;&#039;&#039;. Siehe dazu auch die Dokumentation von NXP zu den &#039;&#039;&#039;[http://www.nxp.com/documents/leaflet/75016842.pdf LPCXpresso-Entwicklungskits]&#039;&#039;&#039; (PDF), oder diese &#039;&#039;&#039;[http://www.mikrocontroller.net/wikisoftware/index.php?title=LPC1xxx_Entwicklungskit_LPCXpresso Beschreibung]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Von ST gibt es günstige MBED/Arduino kompatible Nucleo Entwicklungskits (ca. 12€) z.B. &#039;&#039;&#039;[http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1847/PF260320?s_searchtype=partnumber]&#039;&#039;&#039;. Der integrierte ST-Link Debugger kann mittels SWD und OpenOCD als Software auch andere Chip programmieren. Die etwas teuereren Discoveryboards, z.B. &#039;&#039;&#039;[http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF260946?s_searchtype=partnumber]&#039;&#039;&#039;, haben mehr externe Bauteile on-board, während die Nucleo Board über Shields erweiterbar sind. Nur bei Nucleo Boards ist eine UART Schnittstelle als Standard über USB zu erreichen, bei Discovery Boards mit ST-Link V2-1 müssen Lötbrücken gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Auch Infineon bietet Arduino-kompatible Boards+Shields mit dem XMC1100 Prozessor und angeflanschtem Debugger an (ab ca. 16€). Weiters gibt es günstige XMC4500 Kits, die auch Ethernet, SPI-Flash und SDCard-Slot Optionen bieten. Am unteren Ende gibt es ein XMC1100 Kit samt Debugger ab ca. 5€, dieses Board für den Schlüsselbund sozusagen nennt sich treffend &amp;quot;XMC 2 Go&amp;quot;. Die Preise können je nach Distributor stark variieren.&lt;br /&gt;
Siehe auch hier &#039;&#039;&#039;[http://www.infineon.com/cms/de/product/microcontroller/32-bit-industrial-microcontroller-based-on-arm-registered-cortex-registered-m/xmc-development-tools-kits-and-boards/channel.html?channel=db3a30433580b3710135a07902883872 XMC-Starter-Kits]&#039;&#039;&#039;.&lt;br /&gt;
Des weiteren werden auch schon Kits in Verbindung mit Sensoren zum Evaluieren angeboten, wie das &amp;quot;3D 2 Go&amp;quot; Board mit einem XMC1100 Prozessor und dem neuen 3D-Magnetfeldsensor von Infineon, um ein Beispiel zu nennen: &#039;&#039;&#039;[http://www.infineon.com/cms/en/product/sensor-ics/magnetic-sensors/3d-magnetic-sensor/channel.html?channel=5546d4624c9e0f0e014c9e105a8a001c 3D-Sensorkit]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Von Silicon Labs gibt es [https://www.silabs.com/products/mcu/Pages/32-bit-microcontroller-tools.aspx Starter Kits] mit integriertem J-Link (Debugger) ab ca. 25 € z.B. das [https://www.silabs.com/products/mcu/lowpower/Pages/efm32tg-stk3300.aspx EFM32 Tiny Gecko Starter Kit] bei [http://www.mouser.de/ProductDetail/Silicon-Laboratories/EFM32TG-STK3300/?qs=%2fha2pyFadujBGJvO8YBq9JikBLXQGi%2fjwmF17imXuts5383tWpQKFA%3d%3d Mouser]&lt;br /&gt;
&lt;br /&gt;
Der [http://www.segger.com/cms/jlink.html J-Link]-&amp;quot;Emulator&amp;quot; von Segger wird von vielen Softwarepaketen unterstützt und ist für den &amp;quot;nicht-kommerziellen&amp;quot; Einsatz von Studenten, Funkamateuren und Hobby-Bastler für ca. €50.- erhältlich (J-Link-Edu). Sein Umfang ist auf das Flashen des Speichers und das Debuggen beschränkt. Bonus: Neben den im Prozessor limitiert vorhandenen Hardware-Breakpoints (Anzahl ist MCU abhängig) sind zusätzliche Flash-Breakpoints möglich (müssen aber von der verwendeten Debug-IDE unterstüzt werden). Die sehr gut geplegte Debugger-Software unterstützt nahezu alle ARM Prozessoren. Die Trace-Option wie sie bei der PRO-Variante zur Verfügung steht, ist nicht vorhanden. Für den Preis bekommt man jedoch ein ausgewachsenes Werkzeug mit breiter Unterstützung und der Möglichkeit sowohl SWD als auch JTAG in einem Gerät vereint zu haben. Wenn man aber plant, ein oben genanntes Kit von ST, NXP, Infineon oder ähnlich zu kaufen kann man für ähnliche Kosten auch gleich ein CPU-Board dazubekommen - daher ist es sinnvoll, sich die Dokumentationen der Evalkits voher genau durchzusehen. &lt;br /&gt;
&lt;br /&gt;
Der ULINK2 von Keil/ARM ist ebenfalls ein wirklich gutes Gerät. Leider ist er nicht ganz so günstig und seine Zusammenarbeit beschränkt sich auf die Arm/Keil IDE µVision. Er benötigt jedoch keine speziellen USB-Treiber sondern nutzt geschickt die Funktionalität der HID-Treiber des Betriebssystems. Das macht ihn sofort auf jedem Windows-Betriebssystem einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
Als Alternative zum Beschreiben des Flash über JTAG ist oft ein serieller [[Bootloader]] im Controller enthalten. Bei ST werden sie über einen speziellen Pin der MPU aktiviert und sind dank Kompression und das intelligente entfernen redundanter Information, bei der Übertragung genauso schnell wie JTAG/SWD Adapter.&lt;br /&gt;
&lt;br /&gt;
== CMSIS - ARM Cortex Software Libraries  ==&lt;br /&gt;
 &lt;br /&gt;
Der ARM Cortex Microcontroller Software Interface Standard (CMSIS) ist ein herstellerunabhängiger Hardware Abstraction Layer für die Cortex-M-Prozessor -Serie. Dieser ermöglicht konsistente und einfache Software-Schnittstellen für den Prozessor und die Peripherie, und vereinfacht damit die Software-Wiederverwendung. &lt;br /&gt;
&lt;br /&gt;
CMSIS besteht aus folgenden Komponenten:&lt;br /&gt;
&lt;br /&gt;
* CMSIS-CORE: Bietet eine Schnittstelle zum Cortex-M0, Cortex-M3, Cortex-M4, SC000 und SC300-Prozessorkern und Peripherie-Registern.&lt;br /&gt;
* CMSIS-DSP: DSP-Bibliothek mit über 60 Funktionen in Festkomma-(fractional q7, q15, q31) und single precision floating-point (32-bit)-Implementierung&lt;br /&gt;
* CMSIS-RTOS API: Standardisierte Programmierschnittstelle für Echtzeit-Betriebssysteme für Thread-Steuerung, Ressourcen-und Zeitmanagement. Implementierungen gibt es z.B. von Keil ([http://www.keil.com/pack/doc/cmsis_rtx/index.html RTX])&lt;br /&gt;
* CMSIS-SVD: System View Beschreibung -  XML-Dateien, die die Programmiereransicht des kompletten Mikrocontroller-Systems einschließlich Peripheriegeräte enthalten&lt;br /&gt;
&lt;br /&gt;
Der Standard ist für Cortex-M-Mikrocontroller skalierbar: Von der  kleinsten 4 KB MCU bis zu MCUs mit anspruchsvoller Kommunikations-Peripherie wie Ethernet oder USB. Die &amp;quot;Core Peripheral Funktionen&amp;quot; benötigt beispielsweise weniger als 1 KB-Code und weniger als 10 Bytes RAM.&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* Software Beispiele von [http://www.energymicro.com/downloads/application-notes Energy Micro] basierend auf CMSIS&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen auf der [http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php ARM CMSIS Webseite].&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Linksammlung#ARM|Linksammlung (Abschnitt ARM)]]&lt;br /&gt;
* [[LPC1xxx]]&lt;br /&gt;
* [[LPC1xxx_Entwicklungskit_LPCXpresso]]&lt;br /&gt;
* [[Installationsanleitung_C-Entwicklungsumgebung_f%C3%BCr_LPC1xxx_von_Code_Red]]&lt;br /&gt;
* [[Codebase_f%C3%BCr_LPC1xxx]]&lt;br /&gt;
* [[ARM-elf-GCC-Tutorial]]&lt;br /&gt;
* [[AVR32]]&lt;br /&gt;
* [[Blackfin]]&lt;br /&gt;
* [[AT91SAM9260]]&lt;br /&gt;
* [[STM32]]&lt;br /&gt;
* [[JTAG]]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 EFM32]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/STM32_-_Einstieg_mit_Em::Blocks STM32 - Einstieg mit Em::Blocks Tutorial]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.mySTM32.de Online Tutorial für den STM32]&lt;br /&gt;
* [http://www.myXMC.de Online Tutorial für den XMC von Infineon]&lt;br /&gt;
* [http://www.myUGL.de Online Tutorial für freie Grafikbibliothek, STM32, STM32F429, TFT, Touch]&lt;br /&gt;
* [http://embdev.net/forum/arm-gcc ARM-GCC Forum] im englischsprachigen &amp;quot;Ableger&amp;quot; von mikrocontroller.net embdev.net u.a. für WinARM, Yagarto, CS Codebench&lt;br /&gt;
* [http://www.arm.com/products/processors/cortex-m/index.php Cortex-M Produktseite von ARM]&lt;br /&gt;
* [http://infocenter.arm.com/help/index.jsp Infocenter von ARM Ltd.]&lt;br /&gt;
* [http://www.open-research.org.uk/ARMuC/ ARMuC ARM microcontroller Wiki]&lt;br /&gt;
* [http://chaosradio.ccc.de/cre151.html Chaosradio Express - Die ARM-Architektur]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
*ARM Systems Developer&#039;s Guide (2004) ISBN 1558608745 [http://books.google.de/books?id=HKKUkDQE17QC&amp;amp;output=html Im Buch blättern] [http://booksite.elsevier.com/9781558608740/ Programmbeispiele aus dem Buch, u.a. FFT, FIR/IIR-Filter, Division, Wurzel]&lt;br /&gt;
*ARM Assembly Language - an Introduction (2007) ISBN 1847536964 [http://books.google.de/books?id=8KJX5R8mMvsC&amp;amp;output=html Im Buch blättern]   [http://www.lulu.com/content/1172076 Verlagsseite &amp;quot;Book on demand&amp;quot;]&lt;br /&gt;
*ARM Rechnerarchitekturen für System-on-Chip-Design (2002) ISBN 3826608542&lt;br /&gt;
*Co-Verification of Hardware and Software for Arm Soc Design (2004) ISBN 0750677309&lt;br /&gt;
*ARM System-on-Chip Architecture (2000) ISBN 0201675196 [http://books.google.de/books?id=J_Fu_YTVD9gC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*ARM Architecture Reference Manual ISBN 0201737191 [http://books.google.de/books?id=O5G-6WX1xWsC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*Messen, Steuern und Regeln mit ARM-Mikrocontrollern ISBN 3772340172 [http://books.google.de/books?id=TKs4kN-zNYQC&amp;amp;output=html im Buch blättern]&lt;br /&gt;
*Programming Arm Microcontrollers: Using C and the Lpc2100 Family (2005? /ab 1. Dezember 2008) ISBN 0321263359&lt;br /&gt;
*Arm Assembly: Fundamentals and Techniques (ab 1. März 2009) ISBN 1439806101&lt;br /&gt;
*Reliable Embedded Systems: Using 8051 and ARM Microcontrollers (2007) ISBN 0321252918 600 Seiten mit CD [http://vig.pearsoned.co.uk/catalog/academic/product/0,1144,0321252918-TOC,00.html Inhaltsverzeichnis]&lt;br /&gt;
* C und C++ für Embedded Systems (u.a. ARM Cortex-M3) mitp-Verlag 2008 ISBN 382665949X&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M0 (Joseph Yiu) Newnes Verlag ISBN 0123854776&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M3 (Joseph Yiu) Newnes Verlag ISBN 185617963X&lt;br /&gt;
&lt;br /&gt;
== Artikel aus der Kategorie ARM ==&lt;br /&gt;
&amp;lt;ncl style=compact maxdepth=2 headings=bullet headstart=2&lt;br /&gt;
      showcats=1 showarts=1&amp;gt;ARM&amp;lt;/ncl&amp;gt;&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 &#039;&#039;&#039;EFM32&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/XMCxxxx &#039;&#039;&#039;Infineon XMCxxxx&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [https://www.mikrocontroller.net/articles/Cortex-A ARM Cortex A]&lt;br /&gt;
&lt;br /&gt;
[[Category:ARM| ]]&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94978</id>
		<title>ARM Cortex Mikrocontroller</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=ARM_Cortex_Mikrocontroller&amp;diff=94978"/>
		<updated>2017-01-20T16:48:47Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Firma ARM stellt selbst keine Prozessoren/Controller her, sondern entwickelt nur sogenannte &amp;quot;IP-Cores&amp;quot;, die von Herstellern wie Atmel, Infineon, ST, NXP, TI und vielen anderen lizenziert werden. Diese Hersteller ergänzen den Core um Speicher und Peripherie. Der Vorteil dieses Modells ist, dass dadurch sehr viele Prozessoren mit unterschiedlichster Ausstattung verfügbar sind, die alle mit dem selben Befehlssatz (und damit dem selben Compiler) programmierbar sind.&lt;br /&gt;
&lt;br /&gt;
Allen ARM-Cores gemeinsam ist die 32 Bit RISC-Architektur. Für diese gibt es den klassischen 32bit ARM Befehlssatz und den zusätzlichen, kleineren 16/32 Bit &#039;&#039;&#039;Thumb&#039;&#039;&#039;-Befehlssatz. Die verschiedenen Prozessoren/Controller unterstützen einen oder beide davon. Thumb-fähige Controller sind erkennbar am &#039;&#039;&#039;T&#039;&#039;&#039; in der Bezeichnung, z.&amp;amp;nbsp;B. ARM7&#039;&#039;&#039;T&#039;&#039;&#039;DMI. Thumb kodiert die meisten Instruktionen in 16bit, den Rest in 32bit, was in einem kleineren Prozessor und geringenem Platzbedarf des Codes resultiert [http://www.arm.com/files/pdf/ARM_Microcontroller_Code_Size_%28full%29.pdf]; der Nachteil ist die etwas niedrigere Geschwindigkeit. Die Cortex-M Kerne unterstützen ausschließlich den Thumb2-Befehlssatz.&lt;br /&gt;
&lt;br /&gt;
Seit einigen Jahren sind ARM-basierte Mikrocontroller erhältlich, die aufgrund der vergleichbar einfachen Beschaltung und niedrigem Stromverbrauch eine echte Alternative zu 8-Bit-Controllern wie dem [[AVR]] darstellen. Die ersten Controller mit diesen Eigenschaften verwendeten den ARM7TDMI-Kern (zB. LPC2000) (ARMv4T-Architektur). Mittlerweile wurden diese vom Cortex M-Kern abgelöst (ARMv6M, ARMv7M-Architektur), welcher in verschiedenen Varianten für verschiedene Einsatzzwecke verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In diesem Artikel geht es primär um die ARM Cortex-M Mikrocontroller, weniger um ARM [[Cortex-A]] Prozessoren, welche in Smartphones, [[Raspberry Pi]] u.ä. eingesetzt werden.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Varianten des Cortex-M Mikrocontroller-Kerns, aufgeführt vom energieeffizientesten zum leistungsfähigsten (Liste nicht unbedingt aktuell! Am besten immer die Herstellerseiten bemühen).&lt;br /&gt;
&lt;br /&gt;
sgdzg&lt;br /&gt;
&lt;br /&gt;
== ARM Cortex M3 ==&lt;br /&gt;
Der erste Kern der Cortex M-Reihe war der Cortex-M3. Dieser ist vom Leistungsniveau her am ehesten mit seinem Vorgänger, dem ARM7TDMI vergleichbar.&lt;br /&gt;
&lt;br /&gt;
Controllerfamilien dieser Klasse sind:&lt;br /&gt;
&lt;br /&gt;
* [http://www.silabs.com/products/mcu/32-bit/efm32-tiny-gecko/pages/efm32-tiny-gecko.aspx EFM32 Tiny Gecko], [http://www.silabs.com/products/mcu/32-bit/efm32-gecko/pages/efm32-gecko.aspx EFM32 Gecko], [http://www.silabs.com/products/mcu/32-bit/efm32-leopard-gecko/pages/efm32-leopard-gecko.aspx EFM32 Leopard Gecko] sowie [http://www.silabs.com/products/mcu/32-bit/efm32-giant-gecko/pages/efm32-giant-gecko.aspx EFM32 Giant Gecko] von [http://www.silabs.com Silicon Labs] , siehe &#039;&#039;&#039;[[EFM32|EFM32 hier im Wiki]]&#039;&#039;&#039;&lt;br /&gt;
* [http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/lpc-cortex-m-mcus:LPC-ARM-CORTEX-M-MCUS LPC13xx/LPC15xx/LPC17xx/LPC18xx] von NXP oder die inzwischen schon sehr ausführliche, siehe &#039;&#039;&#039;[[LPC1xxx|LPC1xxx hier im Wiki]]&#039;&#039;&#039;&lt;br /&gt;
* [http://www.ti.com/lsds/ti/microcontroller/tiva_arm_cortex/c_series/tm4c_arm_cortex-m4/overview.page TIVA] von [http://www.ti.com Texas Instruments] (vormals Stellaris, vormals Luminary Micro)&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/arm/default.aspx SAM3N, SAM3S,SAM3U, SAM3A und SAM3X Serien] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.st.com/internet/mcu/family/141.jsp STM32] Baureihen [http://www.st.com/internet/mcu/subclass/1169.jsp F1]/[http://www.st.com/internet/mcu/subclass/1520.jsp F2]/[http://www.st.com/internet/mcu/subclass/1376.jsp L1]/[http://www.st.com/internet/mcu/subclass/1377.jsp W] von STMicroelectronics , siehe &#039;&#039;&#039;[[STM32|STM32 hier im Wiki]]&#039;&#039;&#039;&lt;br /&gt;
* [http://www.toshiba-components.com/microcontroller/TMPM330.html TMPM330] von Toshiba&lt;br /&gt;
* [http://www.spansion.com/Products/microcontrollers/32-bit-ARM-Core/fm3/Pages/FM3-family.aspx FM3] von [http://www.spansion.com Spansion] (vormals Fujitsu)&lt;br /&gt;
* [http://www.holtek.com.tw/english/products/32bit_flashmcu.htm HT32] von Holtek Semiconductor&lt;br /&gt;
* [http://www.cypress.com/PSOC5 PSOC5] von Cypress&lt;br /&gt;
&lt;br /&gt;
Für den LPC1xxx ist bereits eine &#039;&#039;&#039;[http://www.mikrocontroller.net/articles/Codebase_f%C3%BCr_LPC1xxx#Allgemeine_Informationen_zum_Aufbau_der_Code_Base Code-Base]&#039;&#039;&#039;  und ein preisgünstiges &#039;&#039;&#039;[[LPC1xxx_Entwicklungskit_LPCXpresso]]&#039;&#039;&#039; vorhanden.&lt;br /&gt;
&lt;br /&gt;
== ARM Cortex M4 ==&lt;br /&gt;
Als hoch performante Variante gibt es dann noch die Cortex-M4 Cores welche im Kern aus einem Cortex-M3 mit zusätzlichen [[DSP]]-Funktionen und teilweise einer (single precision) FPU bestehen. &lt;br /&gt;
&lt;br /&gt;
Diese werden beispielsweise in folgenden Controllern eingesetzt:&lt;br /&gt;
* [http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/kinetis-cortex-m-mcus:KINETIS Kinetis Series] von Freescale (jetzt NXP)&lt;br /&gt;
* [http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/lpc-cortex-m-mcus/lpc-cortex-m4/lpc4300-cortex-m4-m0:MC_1403790133078 LPC43xx] von [http://www.nxp.com/ NXP] (Dual Core: M4F + bis zu 2 Cortex-M0)&lt;br /&gt;
* [http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/lpc-cortex-m-mcus/lpc-cortex-m4/lpc54000-low-power-cortex-m4:MC_1414576688124 LPC54xxx] von [http://www.nxp.com/ NXP] (Dual Core: M4F + bis zu einem Cortex-M0+)&lt;br /&gt;
* [http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/lpc-cortex-m-mcus/lpc-cortex-m4/lpc4000-cortex-m4:MC_1403790399405 LPC4xxx] von [http://www.nxp.com/ NXP]&lt;br /&gt;
* [http://www.silabs.com/products/mcu/32-bit/efm32-wonder-gecko/pages/efm32-wonder-gecko.aspx EFM32-Wonder Gecko] von [http://www.silabs.com Silicon Labs], siehe &#039;&#039;&#039;[[EFM32|EFM32 hier im Wiki]]&#039;&#039;&#039;&lt;br /&gt;
* [http://www.st.com/internet/mcu/subclass/1605.jsp STM32F3] von [http://www.st.com STMicro], siehe &#039;&#039;&#039;[[STM32|STM32 hier im Wiki]]&#039;&#039;&#039;&lt;br /&gt;
* [http://www.st.com/internet/mcu/subclass/1521.jsp?WT.ac=p2_bn_jun12_stm32f4series STM32F4] von [http://www.st.com STMicro], siehe &#039;&#039;&#039;[[STM32|STM32 hier im Wiki]]&#039;&#039;&#039;&lt;br /&gt;
* [http://www.ti.com/lsds/ti/microcontroller/tiva_arm_cortex/c_series/tm4c_arm_cortex-m4/overview.page Tiva C Series, TM4C] von [http://www.ti.com Texas Instruments]. Früher nannte Texas Instruments diese Controller &#039;&#039;Stellaris LM4F Series&#039;&#039;. 2013 begann TI mit einer große Umbenennung, bei der sogar neue Typenbezeichnung vergeben wurden. So wurde zum Beispiel aus dem LM4F230H5QR der TM4C123GH6PM. Gleichzeitig begann TI die Bezeichnung &#039;&#039;Stellaris&#039;&#039; aus Datenblättern, Software-Bibliotheken und Ähnlichem zu entfernen und durch &#039;&#039;Tiva&#039;&#039; zu ersetzen. Siehe auch [http://www.ti.com/lit/an/spma050a/spma050a.pdf].&lt;br /&gt;
* [http://www.infineon.com/XMC4000 XMC4000] von [http://www.infineon.com Infineon],  siehe &#039;&#039;&#039;[[XMCxxxx|XMCxxxx hier im Wiki]]&#039;&#039;&#039;, [[XMC4500|Artikel zum XMC4500]]&lt;br /&gt;
* [http://www.spansion.com/Products/microcontrollers/32-bit-ARM-Core/fm4/Pages/default.aspx FM4] von [http://www.spansion.com Spansion] (vormals Fujitsu)&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/arm/sam4l.aspx SAML] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/arm/sam4e.aspx SAME] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/arm/sam4n.aspx SAMN] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/arm/sam4s.aspx SAMS] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
&lt;br /&gt;
== ARM Cortex M7 ==&lt;br /&gt;
&lt;br /&gt;
Die neueste Variante der Cortex M-Reihe ist der M7, bei dem gegenüber dem M4 zahlreiche Features hinzukommen die die Brücke zu Anwendungsprozessoren schlagen: eine double precision-FPU, Code- und Daten-Cache, eine 6-stufige Pipeline mit Sprungvorhersage, und unterm Strich eine deutlich höhere Rechenleistung. Controller basierend auf dem Cortex M7 sind u.a. von Atmel, NXP und ST erhältlich. &lt;br /&gt;
&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/ARM/SAM-E.aspx SAME] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/ARM/SAM-S.aspx SAMS] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/ARM/SAM-V.aspx SAMV] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/ARM/sam7s_se.aspx SAM7S/SE] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.atmel.com/products/microcontrollers/ARM/sam7x_xc.aspx SAM7X/XC] von [http://www.atmel.com/default.aspx Atmel]&lt;br /&gt;
* [http://www.st.com/web/en/catalog/mmc/SC1169/SS1858 Produktseite der STM32F7-Serie von ST]&lt;br /&gt;
&lt;br /&gt;
== ARM7TDMI ==&lt;br /&gt;
Der Vorgänger der Cortex-M-Cores ist der &#039;&#039;&#039;ARM7&#039;&#039;&#039;TDMI. Controllerfamilien dieser Klasse sind immer noch weit verbreitet:&lt;br /&gt;
* NXP (ehemals Philips) [[LPC2000]] &lt;br /&gt;
* Atmel [[AT91SAM]]7&lt;br /&gt;
* Analog Devices [[ADuC7xxx]]&lt;br /&gt;
* [http://focus.ti.com/mcu/docs/mcuprodoverview.tsp?sectionId=95&amp;amp;tabId=203&amp;amp;familyId=454 Texas Instruments TMS470]&lt;br /&gt;
* SAMSUNG S3C24x0 [http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=229&amp;amp;partnum=S3C2410]&lt;br /&gt;
* STR7xx von ST Microelectronics [http://www.st.com/mcu/inchtml-pages-str7.html]&lt;br /&gt;
* und viele weitere&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen zur ARM-Architektur finden sich in der [http://de.wikipedia.org/wiki/ARM-Architektur Wikipedia], weiterführende Links in der [[Linksammlung#ARM|Linksammlung]].&lt;br /&gt;
&lt;br /&gt;
== Compiler &amp;amp; Software ==&lt;br /&gt;
&lt;br /&gt;
=== [[ARM_GCC|GCC]] ===&lt;br /&gt;
Einer der beliebtesten Compiler für ARM-Prozessoren ist der GCC. Er kann sowohl ARM- als auch Thumb-Code erzeugen. Mehr dazu unter [[ARM GCC]].&lt;br /&gt;
&lt;br /&gt;
=== C/C++ IDEs ===&lt;br /&gt;
Kostenlose Entwicklungsumgebungen (überwiegend GCC-basiert):&lt;br /&gt;
* [http://www.coocox.org/software.html CooCox IDE] (Eclipse basierend)&lt;br /&gt;
* [https://gnuarmeclipse.github.io GNU ARM Eclipse] (Eclipse Plugin)&lt;br /&gt;
* [http://www.emblocks.org/web/ EmBlocks IDE] (Basiert auf Code::Blocks)&lt;br /&gt;
** Compiler: GNU ARM-GCC (in der Installation enthalten), RealView und IAR &lt;br /&gt;
** Hardware: STlink (mit &amp;quot;Live data&amp;quot;), openOCD, Jlink. &lt;br /&gt;
** Project Import: CoIDE, uVision, Atmel studio, MplabX, Mplab 8&lt;br /&gt;
** OS aware debugging &lt;br /&gt;
***FreeRTOS&lt;br /&gt;
***ChibiOS/RT  &lt;br /&gt;
** Unterstützt sehr viele Controller(-Hersteller):&lt;br /&gt;
***Atmel-ARM&lt;br /&gt;
***NXP-ARM&lt;br /&gt;
***STMicro-ARM&lt;br /&gt;
***EnergyMicro-ARM&lt;br /&gt;
**Keine Beschränkungen&lt;br /&gt;
**Hier gehts zum &#039;&#039;[http://www.emblocks.org/web/downloads-main Download]&#039;&#039;&#039;&lt;br /&gt;
* [http://www.emide.org/ emIDE] Windows, komplette Visual Studio artige Entwicklungsumgebung (basierend auf Code::Blocks) mit GCC und Debugger (Unterstützung für Adapter von Segger) &amp;lt;!-- Projekt eines Segger Mitarbeiters --&amp;gt;&lt;br /&gt;
* [https://mbed.org mbed]: eine kostenlose Online-Entwicklungsumgebung basierend auf dem ARM Realview-Compiler, mit einer umfangreichen C++-Bibliothek für die Controllerfunktionen, integrierter Versionsverwaltung, und vielen Beispielprogrammen. Projekte lassen sich für Keil/IAR/GCC exportieren und offline weiterbearbeiten; die Bibliotheksfunktionen sind Open Source und auch kommerziell einsetzbar.&lt;br /&gt;
* [http://www.isystem.com/products/software/winidea-open winIDEAOpen]Die Fa. iSystem stellt mit der winIDEAOpen nun eine kostenlose Entwicklungsumgebung für alle Cortex-M Bauteile zur Verfügung. Als Compiler wird der GNU GCC verwendet und auch gleich mitinstalliert. Die IDE ist recht intuitiv und mit einer umfangreichen Hilfe ausgestattet. Das Ganze funktioniert mit dem &amp;lt;u&amp;gt;GCC ohne Codesize Limit&amp;lt;/u&amp;gt; und auch ein Testwerkzeug (testIDEA) ist mit integriert. Hardwareseitig werden neben dem iSystem iTag50 [http://www.isystem.com/products/hardware/cortex-debugger/itag] auch die Segger J-Link Debug Probes sowie der ST-Link von ST unterstützt. Auf der Webseite von iSystem sind auch einige schöne Beispielprojekte für diverse Boards zu finden [http://www.isystem.com/download/winideaopen]. Demnächst soll noch die Unterstützung für die ARM und IAR Compiler hinzuzkommen. Hier gehts zum &#039;&#039;[http://www.isystem.com/download/winideaopen Download]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Infineon&#039;&#039;&#039; bietet für seine &#039;&#039;&#039;XMC&#039;&#039;&#039; Prozessorfamilien auch eine kostenlose, professionell gepflegte C/C++ Entwicklungsumgebung an, ohne Einschränkungen auf bestimmte Typen oder Speichergrößen - &amp;lt;u&amp;gt;alle erhältlichen XMC 1000er und 4000er Prozessoren werden unterstützt&amp;lt;/u&amp;gt;. Wenn man sich dazu noch eines der günstigen XMC Evaluierungsboards besorgt (XMC 1100 Bootkit, XMC 4500 Relax (lite) Kit o.ä.), hat man ein erstes Entwicklungssystem inklusive wiederverwendbaren HW-Debugger zur Verfügung. Die Entwicklungsumgebung basiert auf Eclipse, besitzt aber zahlreiche Erweiterungen samt Codegenerierung (sogenannte Apps), die gerade am Anfang viele Dinge abnehmen kann, da man die Peripherals damit einfach grafisch konfigurieren kann. Das ist bei Prozessoren, dessen User Manual einige hundert Seiten ausmacht (oder auch für Umsteiger von 8bitter oder anderen 32bittern), nicht unwichtig. Der generierte Code ist template-basiert, gut lesbar und kann später - wenn man mehr Erfahrung hat, für eigene Entwicklungen weiter nutzen und optimieren. Damit verliert man dann allerdings die Möglichkeit, Updates der generierten Codes aus den Apps zu bekommen, die Infineon ebenfalls kostenfrei zur Verfügung stellt. Die Software nennt sich &#039;&#039;Digital Application Virtual Engineer&#039;&#039; ([http://www.infineon.com/dave DAVE]) und kann nach Registrierung kostenlos für Windows heruntergeladen werden. Innerhalb von Dave kann man dann Apps und viele Beispiele (ohne weitere Anmeldung und Kosten) komplett oder selektiv (für bestimmte Prozessoren) herunterladen. Die aktuell stabile Version ist v3. Es ist eine neue DAVE Umgebung v4 in Arbeit, eine Betaversion kann heruntergeladen werden. Diese neue v4 Variante wird auch ein separates SDK besitzen, um Apps für Dave selbst schreiben zu können (z.B. Bauteilhersteller, die die Anbindung an den XMC für Kunden vereinfachen wollen). Einsteiger sollten aber mit v3 beginnen, um nicht über Bugs der Beta v4 zu stolpern (siehe auch im [http://www.infineonforums.com/forums/8-XMC-Forum XMC-Forum]).&lt;br /&gt;
* &#039;&#039;&#039;NXP&#039;&#039;&#039; bietet für seine &#039;&#039;&#039;LPC&#039;&#039;&#039; Prozessorfamilien eine &amp;lt;u&amp;gt;kostenlose&amp;lt;/u&amp;gt; C/C++ Entwicklungsumgebung an. Die auf Eclipse basierende Entwicklungsumgebung ([http://www.lpcware.com/lpcxpresso LPCXpresso]) ist nach der Installation bis 8kB freigeschaltet und nach einer einfachen und kostenlosen Registrierung für 256kB. [http://www.lpcware.com/lpcxpresso LPCXpresso] steht für Windows, Linux und Mac zur Verfügung.&lt;br /&gt;
* &#039;&#039;&#039;ST&#039;&#039;&#039; bietet für seine &#039;&#039;&#039;STM32&#039;&#039;&#039; Prozessorfamilie eine &amp;lt;u&amp;gt;kostenlose&amp;lt;/u&amp;gt; C/C++ Entwicklungsumgebung an. Die auf Eclipse basierende Entwicklungsumgebung kann nach Registrierung auf der Homepage heruntergeladen werden. [http://www.openstm32.org/] &lt;br /&gt;
&lt;br /&gt;
Kommerzielle Entwicklungsumgebungen (zum Teil kostenlos mit Einschränkungen) für ARM-basierte Mikrocontroller sind z.&amp;amp;nbsp;B.:&lt;br /&gt;
* [http://timor.atollic.com/truestudio/ Atollic TrueStudio] (Windows), Eclipse-basierend inkl. Compiler und Linker für fast alle ARMs, jetzt auch kostenlos mit vielen Beispielen und ohne Codesize-Limitierung, dafür mit anderen Einschränkungen&lt;br /&gt;
* [http://www.cosmicsoftware.com/download_cortex_64k.php Cosmic Software] (Windows), bis 64kB kostenlos&lt;br /&gt;
* [http://rowley.co.uk/arm/ Crossworks ARM] (inkl. Toolchains basierend auf GCC und Clang, für Windows, Mac OS und Linux)&lt;br /&gt;
* [http://www.iar.com/ewarm/ IAR Embedded Workbench for ARM] (Windows)&lt;br /&gt;
* [http://www.keil.com/arm/ MDK-ARM von Keil/ARM] (Windows), Lite-Version bis 32kB kostenlos,&lt;br /&gt;
* [http://www2.keil.com/stmicroelectronics-stm32/mdk MDK-STM32 von KEIL] Speziell für STM32x0 kostenlos ohne Beschränkung &lt;br /&gt;
* [http://www.sisy.de/ SiSy MC++] (Windows), Demo-Version, keine Code-Begrenzung&lt;br /&gt;
&lt;br /&gt;
=== Compiler für sonstige Programmiersprachen ===&lt;br /&gt;
* Basic: http://www.mikroe.com/mikrobasic/arm/&lt;br /&gt;
* Pascal: http://www.mikroe.com/mikropascal/arm/&lt;br /&gt;
&lt;br /&gt;
=== Interpreter ===&lt;br /&gt;
* Forth: https://github.com/ekoeppen/CoreForth&lt;br /&gt;
* JavaScript: http://www.espruino.com/&lt;br /&gt;
* Lua: http://www.eluaproject.net/&lt;br /&gt;
&lt;br /&gt;
=== ARM/XSCALE/CORTEX Instruction Set Simulator ===&lt;br /&gt;
Die Firma Lauterbach bietet unter der Artikelnummer LA-8809 einen Instruction Set Simulator für ARM Cores an. Die Demoversion ist zur Evaluierung kostenlos. Einschränkungen bestehen in der Anzahl der zu ladenden Debugsymbole. Der Simulator unterstützt alle gängigen ARM Derivate und lädt alle üblichen Debugformate, wie die des RealView,  IAR und TI Compilers, oder der freien GCC Tools. Zum Simulator gibt es entsprechende zugehörige Debugtools, die allerdings käuflich zu erwerben sind.&lt;br /&gt;
&lt;br /&gt;
* [http://www.lauterbach.com/frames.html?dwnload.html Download ARM/XSCALE/CORTEX Simulator]&lt;br /&gt;
&lt;br /&gt;
== Debug- und Programmierschnittstellen (JTAG/SWD) ==&lt;br /&gt;
&lt;br /&gt;
Alle ARM-basierten Prozessoren verwenden ein einheitliches [[JTAG]]-Interface, über das Debugging und Speicherzugriff erfolgen kann. Nicht standardisiert sind allerdings die Verfahren zum Beschreiben des Flash-ROMs. Deshalb muss man beachten, ob die verwendete JTAG-Software Programmierroutinen für den jeweiligen Controller besitzt.&lt;br /&gt;
&lt;br /&gt;
SWD (Serial Wire Debug) ist eine neue mit den Cortex-Mikrocontrollern eingeführte Debug- und Programmierschnittstelle, die weniger Pins benötigt als JTAG. Hier wird Debug-Bandbreite bzw. Speed gegen mehr verfügbare Pins für in-circuit Debugging &amp;quot;getauscht&amp;quot;. Die meisten Controller der Cortex-M0 &amp;amp; M3 Serie können sowohl mittels JTAG als auch mittels SWD programmiert werden, es gibt allerdings auch Exemplare (z.B. [[EFM32]] von [https://www.silabs.com Silicon Labs], XMC1100 von [http://www.infineon.com/xmc Infineon]) welche nur SWD unterstützen.&lt;br /&gt;
&lt;br /&gt;
Eine Übersicht über die empfohlenen Steckerbelegungen für JTAG und SWD gibt ein [http://infocenter.arm.com/help/topic/com.arm.doc.faqs/attached/13634/cortex_debug_connectors.pdf Dokument von ARM].&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus gibt es noch herstellerspezifische Schnittstellen wie SPD (Single Pin Debug) von Infineon, oder vorinstallierte serielle Bootloader, z.B. beim [[STM32]] oder auch bei den [[Infineon XMC]], die dann z.B. über ein eigenes [http://www.infineon.com/cms/de/product/microcontroller/development-tools-software-and-kits/c166/xc166-development-tools-software-and-kits/software-downloads/channel.html?channel=ff80808112ab681d0112ab6b50fe07c9 Tool] ohne weitere Hardware - abgesehen von einem handelsüblichen seriellen Schnittstellenadapter - programmiert werden können. &lt;br /&gt;
&lt;br /&gt;
Viele Entwicklungsboards enthalten auch einen On-Board-Debugadapter zum direkten Anschluss an USB, so dass kein externer SWD- oder JTAG-Adapter notwendig ist. Manche erlauben auch, diesen Adapter abzubrechen und für eigene Entwicklungen weiterzuverwenden, somit ist nach dem Kauf eines Eval-Kits nicht nötig, einen weiteren Adapter später nachzukaufen.&lt;br /&gt;
&lt;br /&gt;
=== Günstige Beispiele zum Einstieg ===&lt;br /&gt;
Ein einfacher JTAG-Adapter für den Parallelport ist der &amp;quot;Wiggler&amp;quot;-kompatible, den man auch einfach selbst bauen kann. Als Software lässt sich unter Windows und Linux [http://openocd.berlios.de/ OpenOCD] (zusammen mit [[GDB]]) oder [http://rowley.co.uk Crossworks ARM] verwenden.  Für USB gibt es ebenfalls OpenOCD-kompatible JTAG-Adapter.&lt;br /&gt;
&lt;br /&gt;
Von NXP sind preiswerte Entwicklungskits (ca. 25€ für Evaluation-Board incl. USB-JTAG-/-SWD-Programer und Debugger) erhältlich z.B. &#039;&#039;&#039;[http://www.watterott.com/index.php?page=search&amp;amp;keywords=LPCXpresso&amp;amp;cat=&amp;amp;mnf=&amp;amp;x=0&amp;amp;y=0 Watterott]&#039;&#039;&#039;. Siehe dazu auch die Dokumentation von NXP zu den &#039;&#039;&#039;[http://www.nxp.com/documents/leaflet/75016842.pdf LPCXpresso-Entwicklungskits]&#039;&#039;&#039; (PDF), oder diese &#039;&#039;&#039;[http://www.mikrocontroller.net/wikisoftware/index.php?title=LPC1xxx_Entwicklungskit_LPCXpresso Beschreibung]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Von ST gibt es günstige MBED/Arduino kompatible Nucleo Entwicklungskits (ca. 12€) z.B. &#039;&#039;&#039;[http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1847/PF260320?s_searchtype=partnumber]&#039;&#039;&#039;. Der integrierte ST-Link Debugger kann mittels SWD und OpenOCD als Software auch andere Chip programmieren. Die etwas teuereren Discoveryboards, z.B. &#039;&#039;&#039;[http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF260946?s_searchtype=partnumber]&#039;&#039;&#039;, haben mehr externe Bauteile on-board, während die Nucleo Board über Shields erweiterbar sind. Nur bei Nucleo Boards ist eine UART Schnittstelle als Standard über USB zu erreichen, bei Discovery Boards mit ST-Link V2-1 müssen Lötbrücken gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Auch Infineon bietet Arduino-kompatible Boards+Shields mit dem XMC1100 Prozessor und angeflanschtem Debugger an (ab ca. 16€). Weiters gibt es günstige XMC4500 Kits, die auch Ethernet, SPI-Flash und SDCard-Slot Optionen bieten. Am unteren Ende gibt es ein XMC1100 Kit samt Debugger ab ca. 5€, dieses Board für den Schlüsselbund sozusagen nennt sich treffend &amp;quot;XMC 2 Go&amp;quot;. Die Preise können je nach Distributor stark variieren.&lt;br /&gt;
Siehe auch hier &#039;&#039;&#039;[http://www.infineon.com/cms/de/product/microcontroller/32-bit-industrial-microcontroller-based-on-arm-registered-cortex-registered-m/xmc-development-tools-kits-and-boards/channel.html?channel=db3a30433580b3710135a07902883872 XMC-Starter-Kits]&#039;&#039;&#039;.&lt;br /&gt;
Des weiteren werden auch schon Kits in Verbindung mit Sensoren zum Evaluieren angeboten, wie das &amp;quot;3D 2 Go&amp;quot; Board mit einem XMC1100 Prozessor und dem neuen 3D-Magnetfeldsensor von Infineon, um ein Beispiel zu nennen: &#039;&#039;&#039;[http://www.infineon.com/cms/en/product/sensor-ics/magnetic-sensors/3d-magnetic-sensor/channel.html?channel=5546d4624c9e0f0e014c9e105a8a001c 3D-Sensorkit]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Von Silicon Labs gibt es [https://www.silabs.com/products/mcu/Pages/32-bit-microcontroller-tools.aspx Starter Kits] mit integriertem J-Link (Debugger) ab ca. 25 € z.B. das [https://www.silabs.com/products/mcu/lowpower/Pages/efm32tg-stk3300.aspx EFM32 Tiny Gecko Starter Kit] bei [http://www.mouser.de/ProductDetail/Silicon-Laboratories/EFM32TG-STK3300/?qs=%2fha2pyFadujBGJvO8YBq9JikBLXQGi%2fjwmF17imXuts5383tWpQKFA%3d%3d Mouser]&lt;br /&gt;
&lt;br /&gt;
Der [http://www.segger.com/cms/jlink.html J-Link]-&amp;quot;Emulator&amp;quot; von Segger wird von vielen Softwarepaketen unterstützt und ist für den &amp;quot;nicht-kommerziellen&amp;quot; Einsatz von Studenten, Funkamateuren und Hobby-Bastler für ca. €50.- erhältlich (J-Link-Edu). Sein Umfang ist auf das Flashen des Speichers und das Debuggen beschränkt. Bonus: Neben den im Prozessor limitiert vorhandenen Hardware-Breakpoints (Anzahl ist MCU abhängig) sind zusätzliche Flash-Breakpoints möglich (müssen aber von der verwendeten Debug-IDE unterstüzt werden). Die sehr gut geplegte Debugger-Software unterstützt nahezu alle ARM Prozessoren. Die Trace-Option wie sie bei der PRO-Variante zur Verfügung steht, ist nicht vorhanden. Für den Preis bekommt man jedoch ein ausgewachsenes Werkzeug mit breiter Unterstützung und der Möglichkeit sowohl SWD als auch JTAG in einem Gerät vereint zu haben. Wenn man aber plant, ein oben genanntes Kit von ST, NXP, Infineon oder ähnlich zu kaufen kann man für ähnliche Kosten auch gleich ein CPU-Board dazubekommen - daher ist es sinnvoll, sich die Dokumentationen der Evalkits voher genau durchzusehen. &lt;br /&gt;
&lt;br /&gt;
Der ULINK2 von Keil/ARM ist ebenfalls ein wirklich gutes Gerät. Leider ist er nicht ganz so günstig und seine Zusammenarbeit beschränkt sich auf die Arm/Keil IDE µVision. Er benötigt jedoch keine speziellen USB-Treiber sondern nutzt geschickt die Funktionalität der HID-Treiber des Betriebssystems. Das macht ihn sofort auf jedem Windows-Betriebssystem einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
Als Alternative zum Beschreiben des Flash über JTAG ist oft ein serieller [[Bootloader]] im Controller enthalten. Bei ST werden sie über einen speziellen Pin der MPU aktiviert und sind dank Kompression und das intelligente entfernen redundanter Information, bei der Übertragung genauso schnell wie JTAG/SWD Adapter.&lt;br /&gt;
&lt;br /&gt;
== CMSIS - ARM Cortex Software Libraries  ==&lt;br /&gt;
 &lt;br /&gt;
Der ARM Cortex Microcontroller Software Interface Standard (CMSIS) ist ein herstellerunabhängiger Hardware Abstraction Layer für die Cortex-M-Prozessor -Serie. Dieser ermöglicht konsistente und einfache Software-Schnittstellen für den Prozessor und die Peripherie, und vereinfacht damit die Software-Wiederverwendung. &lt;br /&gt;
&lt;br /&gt;
CMSIS besteht aus folgenden Komponenten:&lt;br /&gt;
&lt;br /&gt;
* CMSIS-CORE: Bietet eine Schnittstelle zum Cortex-M0, Cortex-M3, Cortex-M4, SC000 und SC300-Prozessorkern und Peripherie-Registern.&lt;br /&gt;
* CMSIS-DSP: DSP-Bibliothek mit über 60 Funktionen in Festkomma-(fractional q7, q15, q31) und single precision floating-point (32-bit)-Implementierung&lt;br /&gt;
* CMSIS-RTOS API: Standardisierte Programmierschnittstelle für Echtzeit-Betriebssysteme für Thread-Steuerung, Ressourcen-und Zeitmanagement. Implementierungen gibt es z.B. von Keil ([http://www.keil.com/pack/doc/cmsis_rtx/index.html RTX])&lt;br /&gt;
* CMSIS-SVD: System View Beschreibung -  XML-Dateien, die die Programmiereransicht des kompletten Mikrocontroller-Systems einschließlich Peripheriegeräte enthalten&lt;br /&gt;
&lt;br /&gt;
Der Standard ist für Cortex-M-Mikrocontroller skalierbar: Von der  kleinsten 4 KB MCU bis zu MCUs mit anspruchsvoller Kommunikations-Peripherie wie Ethernet oder USB. Die &amp;quot;Core Peripheral Funktionen&amp;quot; benötigt beispielsweise weniger als 1 KB-Code und weniger als 10 Bytes RAM.&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* Software Beispiele von [http://www.energymicro.com/downloads/application-notes Energy Micro] basierend auf CMSIS&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen auf der [http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php ARM CMSIS Webseite].&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Linksammlung#ARM|Linksammlung (Abschnitt ARM)]]&lt;br /&gt;
* [[LPC1xxx]]&lt;br /&gt;
* [[LPC1xxx_Entwicklungskit_LPCXpresso]]&lt;br /&gt;
* [[Installationsanleitung_C-Entwicklungsumgebung_f%C3%BCr_LPC1xxx_von_Code_Red]]&lt;br /&gt;
* [[Codebase_f%C3%BCr_LPC1xxx]]&lt;br /&gt;
* [[ARM-elf-GCC-Tutorial]]&lt;br /&gt;
* [[AVR32]]&lt;br /&gt;
* [[Blackfin]]&lt;br /&gt;
* [[AT91SAM9260]]&lt;br /&gt;
* [[STM32]]&lt;br /&gt;
* [[JTAG]]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 EFM32]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/STM32_-_Einstieg_mit_Em::Blocks STM32 - Einstieg mit Em::Blocks Tutorial]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.mySTM32.de Online Tutorial für den STM32]&lt;br /&gt;
* [http://www.myXMC.de Online Tutorial für den XMC von Infineon]&lt;br /&gt;
* [http://www.myUGL.de Online Tutorial für freie Grafikbibliothek, STM32, STM32F429, TFT, Touch]&lt;br /&gt;
* [http://embdev.net/forum/arm-gcc ARM-GCC Forum] im englischsprachigen &amp;quot;Ableger&amp;quot; von mikrocontroller.net embdev.net u.a. für WinARM, Yagarto, CS Codebench&lt;br /&gt;
* [http://www.arm.com/products/processors/cortex-m/index.php Cortex-M Produktseite von ARM]&lt;br /&gt;
* [http://infocenter.arm.com/help/index.jsp Infocenter von ARM Ltd.]&lt;br /&gt;
* [http://www.open-research.org.uk/ARMuC/ ARMuC ARM microcontroller Wiki]&lt;br /&gt;
* [http://chaosradio.ccc.de/cre151.html Chaosradio Express - Die ARM-Architektur]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
*ARM Systems Developer&#039;s Guide (2004) ISBN 1558608745 [http://books.google.de/books?id=HKKUkDQE17QC&amp;amp;output=html Im Buch blättern] [http://booksite.elsevier.com/9781558608740/ Programmbeispiele aus dem Buch, u.a. FFT, FIR/IIR-Filter, Division, Wurzel]&lt;br /&gt;
*ARM Assembly Language - an Introduction (2007) ISBN 1847536964 [http://books.google.de/books?id=8KJX5R8mMvsC&amp;amp;output=html Im Buch blättern]   [http://www.lulu.com/content/1172076 Verlagsseite &amp;quot;Book on demand&amp;quot;]&lt;br /&gt;
*ARM Rechnerarchitekturen für System-on-Chip-Design (2002) ISBN 3826608542&lt;br /&gt;
*Co-Verification of Hardware and Software for Arm Soc Design (2004) ISBN 0750677309&lt;br /&gt;
*ARM System-on-Chip Architecture (2000) ISBN 0201675196 [http://books.google.de/books?id=J_Fu_YTVD9gC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*ARM Architecture Reference Manual ISBN 0201737191 [http://books.google.de/books?id=O5G-6WX1xWsC&amp;amp;printsec=frontcover&amp;amp;output=html&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Im Buch blättern]&lt;br /&gt;
*Messen, Steuern und Regeln mit ARM-Mikrocontrollern ISBN 3772340172 [http://books.google.de/books?id=TKs4kN-zNYQC&amp;amp;output=html im Buch blättern]&lt;br /&gt;
*Programming Arm Microcontrollers: Using C and the Lpc2100 Family (2005? /ab 1. Dezember 2008) ISBN 0321263359&lt;br /&gt;
*Arm Assembly: Fundamentals and Techniques (ab 1. März 2009) ISBN 1439806101&lt;br /&gt;
*Reliable Embedded Systems: Using 8051 and ARM Microcontrollers (2007) ISBN 0321252918 600 Seiten mit CD [http://vig.pearsoned.co.uk/catalog/academic/product/0,1144,0321252918-TOC,00.html Inhaltsverzeichnis]&lt;br /&gt;
* C und C++ für Embedded Systems (u.a. ARM Cortex-M3) mitp-Verlag 2008 ISBN 382665949X&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M0 (Joseph Yiu) Newnes Verlag ISBN 0123854776&lt;br /&gt;
* The Definitive Guide to the Arm Cortex-M3 (Joseph Yiu) Newnes Verlag ISBN 185617963X&lt;br /&gt;
&lt;br /&gt;
== Artikel aus der Kategorie ARM ==&lt;br /&gt;
&amp;lt;ncl style=compact maxdepth=2 headings=bullet headstart=2&lt;br /&gt;
      showcats=1 showarts=1&amp;gt;ARM&amp;lt;/ncl&amp;gt;&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/EFM32 &#039;&#039;&#039;EFM32&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/XMCxxxx &#039;&#039;&#039;Infineon XMCxxxx&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [https://www.mikrocontroller.net/articles/Cortex-A ARM Cortex A]&lt;br /&gt;
&lt;br /&gt;
[[Category:ARM| ]]&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR&amp;diff=94977</id>
		<title>AVR</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR&amp;diff=94977"/>
		<updated>2017-01-20T16:48:34Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die AVR-[[Mikrocontroller]] von [http://www.atmel.com Atmel] sind wegen ihrer übersichtlichen internen Struktur, der [[ISP | In-System-Programmierbarkeit]], und der Vielzahl von kostenlosen Programmen zur Softwareentwicklung (Assembler, Compiler) beliebt. Diese Eigenschaften und der Umstand, dass viele Typen in einfach handhabbaren DIL-Gehäusen (DIP) verfügbar sind, machen den AVR zum idealen Mikrocontroller für Anfänger. &lt;br /&gt;
&lt;br /&gt;
Über die Bedeutung des Namens &amp;quot;AVR&amp;quot; gibt es verschiedene Ansichten; manche meinen er sei eine Abkürzung für &#039;&#039;&#039;A&#039;&#039;&#039;dvanced &#039;&#039;&#039;V&#039;&#039;&#039;irtual [[RISC|&#039;&#039;&#039;R&#039;&#039;&#039;ISC]], andere vermuten dass der Name aus den Anfangsbuchstaben der Namen der Entwickler (&#039;&#039;&#039;A&#039;&#039;&#039;lf Egin Bogen und &#039;&#039;&#039;V&#039;&#039;&#039;egard Wollan &#039;&#039;&#039;R&#039;&#039;&#039;ISC) zusammengesetzt wurde. Laut Atmel ist der Name bedeutungslos.&lt;br /&gt;
&lt;br /&gt;
KLN;ÖGBasjghaöklsjyfhxfgj&lt;br /&gt;
&lt;br /&gt;
pkadhgjnköldfh&lt;br /&gt;
&lt;br /&gt;
asdhdfgj&lt;br /&gt;
&lt;br /&gt;
jhasgljysdfh&lt;br /&gt;
&lt;br /&gt;
sfhdxdsfrgj&lt;br /&gt;
&lt;br /&gt;
 xtghjklvhjb&lt;br /&gt;
&lt;br /&gt;
ydfgujhg&lt;br /&gt;
&lt;br /&gt;
sfhgvdfdg&lt;br /&gt;
&lt;br /&gt;
sadzhg&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR&amp;diff=94976</id>
		<title>AVR</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR&amp;diff=94976"/>
		<updated>2017-01-20T16:48:29Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die AVR-[[Mikrocontroller]] von [http://www.atmel.com Atmel] sind wegen ihrer übersichtlichen internen Struktur, der [[ISP | In-System-Programmierbarkeit]], und der Vielzahl von kostenlosen Programmen zur Softwareentwicklung (Assembler, Compiler) beliebt. Diese Eigenschaften und der Umstand, dass viele Typen in einfach handhabbaren DIL-Gehäusen (DIP) verfügbar sind, machen den AVR zum idealen Mikrocontroller für Anfänger. &lt;br /&gt;
&lt;br /&gt;
Über die Bedeutung des Namens &amp;quot;AVR&amp;quot; gibt es verschiedene Ansichten; manche meinen er sei eine Abkürzung für &#039;&#039;&#039;A&#039;&#039;&#039;dvanced &#039;&#039;&#039;V&#039;&#039;&#039;irtual [[RISC|&#039;&#039;&#039;R&#039;&#039;&#039;ISC]], andere vermuten dass der Name aus den Anfangsbuchstaben der Namen der Entwickler (&#039;&#039;&#039;A&#039;&#039;&#039;lf Egin Bogen und &#039;&#039;&#039;V&#039;&#039;&#039;egard Wollan &#039;&#039;&#039;R&#039;&#039;&#039;ISC) zusammengesetzt wurde. Laut Atmel ist der Name bedeutungslos.&lt;br /&gt;
&lt;br /&gt;
KLN;ÖGBasjghaöklsjyfhxfgj&lt;br /&gt;
&lt;br /&gt;
pkadhgjnköldfh&lt;br /&gt;
&lt;br /&gt;
asdhdfgj&lt;br /&gt;
&lt;br /&gt;
jhasgljysdfh&lt;br /&gt;
&lt;br /&gt;
sfhdxdsfrgj&lt;br /&gt;
&lt;br /&gt;
 xtghjklvhjb&lt;br /&gt;
&lt;br /&gt;
ydfgujhg&lt;br /&gt;
&lt;br /&gt;
sfhgvdfdg&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
* [http://revision3.com/systm/avr101 AVR101] – systm Videocast von Revision3 Internet Television (engl.).&lt;br /&gt;
&lt;br /&gt;
Weitere Verweise (Links) auf externe Informationen und Projekte finden sich in der &#039;&#039;&#039;[[Linksammlung#AVR|Linksammlung]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Anmerkungen ===&lt;br /&gt;
&amp;lt;!-- Dieser Teil sollte in einen anderen Artikel --&amp;gt;&lt;br /&gt;
Es gibt nur wenige Typen mit D/A-Wandler (z.B. AT90PWM2); hierfür benutze man PWM oder externe Bausteine.&lt;br /&gt;
&lt;br /&gt;
Die Takterzeugung ist bei AVRs recht einfach gehalten. So gibt es bei den meisten Modellen keine internen PLLs um „krumme“ Prozessor- oder Peripherietaktfrequenzen zu erzeugen, noch ist der Peripherie-Takt vom Prozessortakt abkoppelbar. Einige AVR verfügen über eine PLL, um damit z.B. einen Timer mit Frequenzen über der Systemfrequenz zu takten oder höhere Systemfrequenz aus niederfrequenteren Taktquellen zu erzeugen (vgl. u.a. Datenblätter ATtiny85 und ATtiny861). Die Baudrate serieller Schnittstellen lässt sich nicht gebrochen einstellen, so dass gegebenenfalls ein zur Baudrate passender Quarz oder Resonator zu verwenden ist.&lt;br /&gt;
&lt;br /&gt;
Für die serielle Programmierung des Flash-Speichers sind 4 Datenleitungen erforderlich und die Taktversorgung muss sicher gestellt sein. Es ist darauf zu achten, dass bei Einstellung der Taktquelle (Fuses) auch die vorhandene Taktquelle ausgewählt wird. Für die Hochvolt-Programmierung (so genannt wegen 12 V am RESET-Anschluss) werden je nach Chip nur 3 Signalleitungen (kleinere ATtinys) oder sehr viele Leitungen benötigt (ATmegas und große ATtinys). Einige Modelle verfügen über eine Debugwire-Schnittstelle, für die im Betrieb zwei Leitungen ausreichen.&lt;br /&gt;
&lt;br /&gt;
Nicht zu verwechseln ist die 8-bit-AVR-Serie mit AVR32. Letztere ist eine 32-bit-Architektur mit recht viel Ähnlichkeit zu Controllern auf Basis eines ARM-Cores. Controller der ATxmega-Serie verfügen über mehr Funktionen als die &amp;quot;traditionellen&amp;quot; AVR (z.B. DMA- und Eventsystem, 12Bit A-D-Wandler). ATxmega sind jedoch für 3,3V-Betrieb ausgelegt und ausschließlich in SMD-Bauform erhältlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Mikrocontroller]]&lt;br /&gt;
[[Category:AVR| ]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR&amp;diff=94975</id>
		<title>AVR</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR&amp;diff=94975"/>
		<updated>2017-01-20T16:48:24Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die AVR-[[Mikrocontroller]] von [http://www.atmel.com Atmel] sind wegen ihrer übersichtlichen internen Struktur, der [[ISP | In-System-Programmierbarkeit]], und der Vielzahl von kostenlosen Programmen zur Softwareentwicklung (Assembler, Compiler) beliebt. Diese Eigenschaften und der Umstand, dass viele Typen in einfach handhabbaren DIL-Gehäusen (DIP) verfügbar sind, machen den AVR zum idealen Mikrocontroller für Anfänger. &lt;br /&gt;
&lt;br /&gt;
Über die Bedeutung des Namens &amp;quot;AVR&amp;quot; gibt es verschiedene Ansichten; manche meinen er sei eine Abkürzung für &#039;&#039;&#039;A&#039;&#039;&#039;dvanced &#039;&#039;&#039;V&#039;&#039;&#039;irtual [[RISC|&#039;&#039;&#039;R&#039;&#039;&#039;ISC]], andere vermuten dass der Name aus den Anfangsbuchstaben der Namen der Entwickler (&#039;&#039;&#039;A&#039;&#039;&#039;lf Egin Bogen und &#039;&#039;&#039;V&#039;&#039;&#039;egard Wollan &#039;&#039;&#039;R&#039;&#039;&#039;ISC) zusammengesetzt wurde. Laut Atmel ist der Name bedeutungslos.&lt;br /&gt;
&lt;br /&gt;
KLN;ÖGBasjghaöklsjyfhxfgj&lt;br /&gt;
&lt;br /&gt;
pkadhgjnköldfh&lt;br /&gt;
&lt;br /&gt;
asdhdfgj&lt;br /&gt;
&lt;br /&gt;
jhasgljysdfh&lt;br /&gt;
&lt;br /&gt;
sfhdxdsfrgj&lt;br /&gt;
&lt;br /&gt;
 xtghjklvhjb&lt;br /&gt;
&lt;br /&gt;
ydfgujhg&lt;br /&gt;
&lt;br /&gt;
== Tipps &amp;amp; Hinweise ==&lt;br /&gt;
&lt;br /&gt;
* [[AVR Typen]] – Die verschiedenen Typen (AT90S, ATmega, ATtiny)&lt;br /&gt;
* [[AVR Checkliste]] – Liste mit Hinweisen zur Lösung üblicher Probleme&lt;br /&gt;
* [http://blog.coldtobi.de/1_coldtobis_blog/archive/87_little_endianess_guide_for_atmel_avr.html (Little) Endianess Guide for Atmel AVR] Übersicht über die Endianess der AVR und AVR32&lt;br /&gt;
* [[AVR Fuses|Fuse-Bits]] – Das Setzen der Fuse-Bits ist ein berüchtigter Fallstrick bei den AVRs; vor dem Rumspielen damit unbedingt diese Hinweise lesen!&lt;br /&gt;
* [[AVR In System Programmer]] – Programmierhardware&lt;br /&gt;
* [[Pony-Prog Tutorial]] – Hinweise zur Programmiersoftware PonyProg&lt;br /&gt;
* [[AVRDUDE]] – Programmiersoftware für die Kommandozeile&lt;br /&gt;
* [[AVR-GCC-Codeoptimierung]] – Wie man mehr aus dem Controller herausholen kann, ohne ein Assembler-Guru sein zu muessen.&lt;br /&gt;
* [[AVR Softwarepool]] – Verschiedene Softwaremodule und Codeschnippsel aus der Codesammlung&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
* [http://revision3.com/systm/avr101 AVR101] – systm Videocast von Revision3 Internet Television (engl.).&lt;br /&gt;
&lt;br /&gt;
Weitere Verweise (Links) auf externe Informationen und Projekte finden sich in der &#039;&#039;&#039;[[Linksammlung#AVR|Linksammlung]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Anmerkungen ===&lt;br /&gt;
&amp;lt;!-- Dieser Teil sollte in einen anderen Artikel --&amp;gt;&lt;br /&gt;
Es gibt nur wenige Typen mit D/A-Wandler (z.B. AT90PWM2); hierfür benutze man PWM oder externe Bausteine.&lt;br /&gt;
&lt;br /&gt;
Die Takterzeugung ist bei AVRs recht einfach gehalten. So gibt es bei den meisten Modellen keine internen PLLs um „krumme“ Prozessor- oder Peripherietaktfrequenzen zu erzeugen, noch ist der Peripherie-Takt vom Prozessortakt abkoppelbar. Einige AVR verfügen über eine PLL, um damit z.B. einen Timer mit Frequenzen über der Systemfrequenz zu takten oder höhere Systemfrequenz aus niederfrequenteren Taktquellen zu erzeugen (vgl. u.a. Datenblätter ATtiny85 und ATtiny861). Die Baudrate serieller Schnittstellen lässt sich nicht gebrochen einstellen, so dass gegebenenfalls ein zur Baudrate passender Quarz oder Resonator zu verwenden ist.&lt;br /&gt;
&lt;br /&gt;
Für die serielle Programmierung des Flash-Speichers sind 4 Datenleitungen erforderlich und die Taktversorgung muss sicher gestellt sein. Es ist darauf zu achten, dass bei Einstellung der Taktquelle (Fuses) auch die vorhandene Taktquelle ausgewählt wird. Für die Hochvolt-Programmierung (so genannt wegen 12 V am RESET-Anschluss) werden je nach Chip nur 3 Signalleitungen (kleinere ATtinys) oder sehr viele Leitungen benötigt (ATmegas und große ATtinys). Einige Modelle verfügen über eine Debugwire-Schnittstelle, für die im Betrieb zwei Leitungen ausreichen.&lt;br /&gt;
&lt;br /&gt;
Nicht zu verwechseln ist die 8-bit-AVR-Serie mit AVR32. Letztere ist eine 32-bit-Architektur mit recht viel Ähnlichkeit zu Controllern auf Basis eines ARM-Cores. Controller der ATxmega-Serie verfügen über mehr Funktionen als die &amp;quot;traditionellen&amp;quot; AVR (z.B. DMA- und Eventsystem, 12Bit A-D-Wandler). ATxmega sind jedoch für 3,3V-Betrieb ausgelegt und ausschließlich in SMD-Bauform erhältlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Mikrocontroller]]&lt;br /&gt;
[[Category:AVR| ]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR&amp;diff=94974</id>
		<title>AVR</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR&amp;diff=94974"/>
		<updated>2017-01-20T16:48:18Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die AVR-[[Mikrocontroller]] von [http://www.atmel.com Atmel] sind wegen ihrer übersichtlichen internen Struktur, der [[ISP | In-System-Programmierbarkeit]], und der Vielzahl von kostenlosen Programmen zur Softwareentwicklung (Assembler, Compiler) beliebt. Diese Eigenschaften und der Umstand, dass viele Typen in einfach handhabbaren DIL-Gehäusen (DIP) verfügbar sind, machen den AVR zum idealen Mikrocontroller für Anfänger. &lt;br /&gt;
&lt;br /&gt;
Über die Bedeutung des Namens &amp;quot;AVR&amp;quot; gibt es verschiedene Ansichten; manche meinen er sei eine Abkürzung für &#039;&#039;&#039;A&#039;&#039;&#039;dvanced &#039;&#039;&#039;V&#039;&#039;&#039;irtual [[RISC|&#039;&#039;&#039;R&#039;&#039;&#039;ISC]], andere vermuten dass der Name aus den Anfangsbuchstaben der Namen der Entwickler (&#039;&#039;&#039;A&#039;&#039;&#039;lf Egin Bogen und &#039;&#039;&#039;V&#039;&#039;&#039;egard Wollan &#039;&#039;&#039;R&#039;&#039;&#039;ISC) zusammengesetzt wurde. Laut Atmel ist der Name bedeutungslos.&lt;br /&gt;
&lt;br /&gt;
KLN;ÖGBasjghaöklsjyfhxfgj&lt;br /&gt;
&lt;br /&gt;
pkadhgjnköldfh&lt;br /&gt;
&lt;br /&gt;
asdhdfgj&lt;br /&gt;
&lt;br /&gt;
jhasgljysdfh&lt;br /&gt;
&lt;br /&gt;
sfhdxdsfrgj&lt;br /&gt;
&lt;br /&gt;
 xtghjklvhjb&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
 	&lt;br /&gt;
* I.Klöckl AVR - Mikrocontroller. MegaAVR® - Entwicklung, Anwendung und Peripherie ISBN 978-3-11-040768-6 (De Gruyter 2015) [http://www.degruyter.com/view/product/449202 Verlags-Webseite]&lt;br /&gt;
* C.Kühnel Programmieren der AVR RISC Mikrocontroller mit BASCOM-AVR ISBN 3898119378 (2000) ISBN 3907857046 (2.Aufl.2004) ISBN 978-3-907857-14-4 (3. überarbeitete und erweiterte Auflage 2010)&lt;br /&gt;
* R.Mittermayr AVR-RISC: Embedded Software selbst entwickeln Franzis 2008 ISBN 3772341071&lt;br /&gt;
* F.Schäffer AVR: Hardware und C-Programmierung in der Praxis Elektor 2008 ISBN 3895762008 [http://www.blafusel.de/books/avr.html Webseite des Autors, Codebeispiele und Leseprobe]&lt;br /&gt;
* G.Schmitt Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie...Oldenbourg 4.Aufl.2008  ISBN 3486587900 ISBN 3486580167 (2006) ISBN 3486577174 (2005) [http://www.oldenbourg-wissenschaftsverlag.de/olb/de/1.c.1495224.de Verlags-Webseite mit Buchauszügen]&lt;br /&gt;
* M.Schwabl-Schmidt Programmiertechniken für AVR-Mikrocontroller Elektor 2008 ISBN 3895761761 [http://www.schwabl-schmidt.de/index.php/buecher Webseite des Autors]&lt;br /&gt;
* M.Schwabl-Schmidt Systemprogrammierung für AVR-Mikrocontroller Elektor 2009 ISBN 3895762180&lt;br /&gt;
* W.Trampert Messen,Steuern und Regeln mit AVR Mikrocontrollern Franzis 2004 ISBN 3772342981&lt;br /&gt;
* W.Trampert AVR-RISC Mikrocontroller Franzis ISBN 3772354769 (2003) ISBN 3772354742 (2002) ISBN 3772354750 (2000)&lt;br /&gt;
* P.Urbanek Embedded Systems: Ein umfassendes Grundlagenwerk ... (2007) ISBN 3981123018 [http://www.ulb.tu-darmstadt.de/tocs/188146911.pdf Inhaltsverzeichnis]&lt;br /&gt;
* S./F.Volpe AVR-Mikrocontroller-Praxis Elektor 2001 ISBN 3895760633&lt;br /&gt;
* R.Walter AVR-Mikrocontroller-Lehrbuch 3. Auflage Denkholz 2009 ISBN 9783981189445 [http://www.rowalt.de/mc/avr/avrbuch/index.htm Webseite des Autors, Buch-Download in geringer Auflösung]&lt;br /&gt;
&lt;br /&gt;
== Tipps &amp;amp; Hinweise ==&lt;br /&gt;
&lt;br /&gt;
* [[AVR Typen]] – Die verschiedenen Typen (AT90S, ATmega, ATtiny)&lt;br /&gt;
* [[AVR Checkliste]] – Liste mit Hinweisen zur Lösung üblicher Probleme&lt;br /&gt;
* [http://blog.coldtobi.de/1_coldtobis_blog/archive/87_little_endianess_guide_for_atmel_avr.html (Little) Endianess Guide for Atmel AVR] Übersicht über die Endianess der AVR und AVR32&lt;br /&gt;
* [[AVR Fuses|Fuse-Bits]] – Das Setzen der Fuse-Bits ist ein berüchtigter Fallstrick bei den AVRs; vor dem Rumspielen damit unbedingt diese Hinweise lesen!&lt;br /&gt;
* [[AVR In System Programmer]] – Programmierhardware&lt;br /&gt;
* [[Pony-Prog Tutorial]] – Hinweise zur Programmiersoftware PonyProg&lt;br /&gt;
* [[AVRDUDE]] – Programmiersoftware für die Kommandozeile&lt;br /&gt;
* [[AVR-GCC-Codeoptimierung]] – Wie man mehr aus dem Controller herausholen kann, ohne ein Assembler-Guru sein zu muessen.&lt;br /&gt;
* [[AVR Softwarepool]] – Verschiedene Softwaremodule und Codeschnippsel aus der Codesammlung&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
* [http://revision3.com/systm/avr101 AVR101] – systm Videocast von Revision3 Internet Television (engl.).&lt;br /&gt;
&lt;br /&gt;
Weitere Verweise (Links) auf externe Informationen und Projekte finden sich in der &#039;&#039;&#039;[[Linksammlung#AVR|Linksammlung]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Anmerkungen ===&lt;br /&gt;
&amp;lt;!-- Dieser Teil sollte in einen anderen Artikel --&amp;gt;&lt;br /&gt;
Es gibt nur wenige Typen mit D/A-Wandler (z.B. AT90PWM2); hierfür benutze man PWM oder externe Bausteine.&lt;br /&gt;
&lt;br /&gt;
Die Takterzeugung ist bei AVRs recht einfach gehalten. So gibt es bei den meisten Modellen keine internen PLLs um „krumme“ Prozessor- oder Peripherietaktfrequenzen zu erzeugen, noch ist der Peripherie-Takt vom Prozessortakt abkoppelbar. Einige AVR verfügen über eine PLL, um damit z.B. einen Timer mit Frequenzen über der Systemfrequenz zu takten oder höhere Systemfrequenz aus niederfrequenteren Taktquellen zu erzeugen (vgl. u.a. Datenblätter ATtiny85 und ATtiny861). Die Baudrate serieller Schnittstellen lässt sich nicht gebrochen einstellen, so dass gegebenenfalls ein zur Baudrate passender Quarz oder Resonator zu verwenden ist.&lt;br /&gt;
&lt;br /&gt;
Für die serielle Programmierung des Flash-Speichers sind 4 Datenleitungen erforderlich und die Taktversorgung muss sicher gestellt sein. Es ist darauf zu achten, dass bei Einstellung der Taktquelle (Fuses) auch die vorhandene Taktquelle ausgewählt wird. Für die Hochvolt-Programmierung (so genannt wegen 12 V am RESET-Anschluss) werden je nach Chip nur 3 Signalleitungen (kleinere ATtinys) oder sehr viele Leitungen benötigt (ATmegas und große ATtinys). Einige Modelle verfügen über eine Debugwire-Schnittstelle, für die im Betrieb zwei Leitungen ausreichen.&lt;br /&gt;
&lt;br /&gt;
Nicht zu verwechseln ist die 8-bit-AVR-Serie mit AVR32. Letztere ist eine 32-bit-Architektur mit recht viel Ähnlichkeit zu Controllern auf Basis eines ARM-Cores. Controller der ATxmega-Serie verfügen über mehr Funktionen als die &amp;quot;traditionellen&amp;quot; AVR (z.B. DMA- und Eventsystem, 12Bit A-D-Wandler). ATxmega sind jedoch für 3,3V-Betrieb ausgelegt und ausschließlich in SMD-Bauform erhältlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Mikrocontroller]]&lt;br /&gt;
[[Category:AVR| ]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR&amp;diff=94973</id>
		<title>AVR</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR&amp;diff=94973"/>
		<updated>2017-01-20T16:48:13Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die AVR-[[Mikrocontroller]] von [http://www.atmel.com Atmel] sind wegen ihrer übersichtlichen internen Struktur, der [[ISP | In-System-Programmierbarkeit]], und der Vielzahl von kostenlosen Programmen zur Softwareentwicklung (Assembler, Compiler) beliebt. Diese Eigenschaften und der Umstand, dass viele Typen in einfach handhabbaren DIL-Gehäusen (DIP) verfügbar sind, machen den AVR zum idealen Mikrocontroller für Anfänger. &lt;br /&gt;
&lt;br /&gt;
Über die Bedeutung des Namens &amp;quot;AVR&amp;quot; gibt es verschiedene Ansichten; manche meinen er sei eine Abkürzung für &#039;&#039;&#039;A&#039;&#039;&#039;dvanced &#039;&#039;&#039;V&#039;&#039;&#039;irtual [[RISC|&#039;&#039;&#039;R&#039;&#039;&#039;ISC]], andere vermuten dass der Name aus den Anfangsbuchstaben der Namen der Entwickler (&#039;&#039;&#039;A&#039;&#039;&#039;lf Egin Bogen und &#039;&#039;&#039;V&#039;&#039;&#039;egard Wollan &#039;&#039;&#039;R&#039;&#039;&#039;ISC) zusammengesetzt wurde. Laut Atmel ist der Name bedeutungslos.&lt;br /&gt;
&lt;br /&gt;
KLN;ÖGBasjghaöklsjyfhxfgj&lt;br /&gt;
&lt;br /&gt;
pkadhgjnköldfh&lt;br /&gt;
&lt;br /&gt;
asdhdfgj&lt;br /&gt;
&lt;br /&gt;
jhasgljysdfh&lt;br /&gt;
&lt;br /&gt;
sfhdxdsfrgj&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
&lt;br /&gt;
* [[AVR-Tutorial]]&lt;br /&gt;
* [[AVR-GCC-Tutorial]]&lt;br /&gt;
* http://www.avr-asm-tutorial.net&lt;br /&gt;
* http://www.electronicsplanet.ch/mikrocontroller/avr-tutorial-c/avr-tutorial-c.htm Kurzanleitung zum Einrichten des STK500 und dem AVR Studio 4&lt;br /&gt;
* [http://www.weigu.lu/a weigu.lu/a]: Gratis Assembler Kurs (pdf). Mehrere hundert Seiten mit vielen neuen Grafiken. Besonders zum Selbststudium geeignet. Es existiert auch ein [http://www.weigu.lu/b/mices2 Entwicklungsboard] zum Kurs.&lt;br /&gt;
* http://www.avr-modelleisenbahn.de/controller/index.htm Datenbuch ATmega8 und Xmega384 mit Beispielen in Assembler (alles deutsch).&lt;br /&gt;
* http://www.tu-chemnitz.de/~heha/hs/ATmegaX8.chm/ = Datenblatt ATmega48/88/168/328 in deutsch, auch als CHM-Datei herunterladbar und damit offline lesbar&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
 	&lt;br /&gt;
* I.Klöckl AVR - Mikrocontroller. MegaAVR® - Entwicklung, Anwendung und Peripherie ISBN 978-3-11-040768-6 (De Gruyter 2015) [http://www.degruyter.com/view/product/449202 Verlags-Webseite]&lt;br /&gt;
* C.Kühnel Programmieren der AVR RISC Mikrocontroller mit BASCOM-AVR ISBN 3898119378 (2000) ISBN 3907857046 (2.Aufl.2004) ISBN 978-3-907857-14-4 (3. überarbeitete und erweiterte Auflage 2010)&lt;br /&gt;
* R.Mittermayr AVR-RISC: Embedded Software selbst entwickeln Franzis 2008 ISBN 3772341071&lt;br /&gt;
* F.Schäffer AVR: Hardware und C-Programmierung in der Praxis Elektor 2008 ISBN 3895762008 [http://www.blafusel.de/books/avr.html Webseite des Autors, Codebeispiele und Leseprobe]&lt;br /&gt;
* G.Schmitt Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie...Oldenbourg 4.Aufl.2008  ISBN 3486587900 ISBN 3486580167 (2006) ISBN 3486577174 (2005) [http://www.oldenbourg-wissenschaftsverlag.de/olb/de/1.c.1495224.de Verlags-Webseite mit Buchauszügen]&lt;br /&gt;
* M.Schwabl-Schmidt Programmiertechniken für AVR-Mikrocontroller Elektor 2008 ISBN 3895761761 [http://www.schwabl-schmidt.de/index.php/buecher Webseite des Autors]&lt;br /&gt;
* M.Schwabl-Schmidt Systemprogrammierung für AVR-Mikrocontroller Elektor 2009 ISBN 3895762180&lt;br /&gt;
* W.Trampert Messen,Steuern und Regeln mit AVR Mikrocontrollern Franzis 2004 ISBN 3772342981&lt;br /&gt;
* W.Trampert AVR-RISC Mikrocontroller Franzis ISBN 3772354769 (2003) ISBN 3772354742 (2002) ISBN 3772354750 (2000)&lt;br /&gt;
* P.Urbanek Embedded Systems: Ein umfassendes Grundlagenwerk ... (2007) ISBN 3981123018 [http://www.ulb.tu-darmstadt.de/tocs/188146911.pdf Inhaltsverzeichnis]&lt;br /&gt;
* S./F.Volpe AVR-Mikrocontroller-Praxis Elektor 2001 ISBN 3895760633&lt;br /&gt;
* R.Walter AVR-Mikrocontroller-Lehrbuch 3. Auflage Denkholz 2009 ISBN 9783981189445 [http://www.rowalt.de/mc/avr/avrbuch/index.htm Webseite des Autors, Buch-Download in geringer Auflösung]&lt;br /&gt;
&lt;br /&gt;
== Tipps &amp;amp; Hinweise ==&lt;br /&gt;
&lt;br /&gt;
* [[AVR Typen]] – Die verschiedenen Typen (AT90S, ATmega, ATtiny)&lt;br /&gt;
* [[AVR Checkliste]] – Liste mit Hinweisen zur Lösung üblicher Probleme&lt;br /&gt;
* [http://blog.coldtobi.de/1_coldtobis_blog/archive/87_little_endianess_guide_for_atmel_avr.html (Little) Endianess Guide for Atmel AVR] Übersicht über die Endianess der AVR und AVR32&lt;br /&gt;
* [[AVR Fuses|Fuse-Bits]] – Das Setzen der Fuse-Bits ist ein berüchtigter Fallstrick bei den AVRs; vor dem Rumspielen damit unbedingt diese Hinweise lesen!&lt;br /&gt;
* [[AVR In System Programmer]] – Programmierhardware&lt;br /&gt;
* [[Pony-Prog Tutorial]] – Hinweise zur Programmiersoftware PonyProg&lt;br /&gt;
* [[AVRDUDE]] – Programmiersoftware für die Kommandozeile&lt;br /&gt;
* [[AVR-GCC-Codeoptimierung]] – Wie man mehr aus dem Controller herausholen kann, ohne ein Assembler-Guru sein zu muessen.&lt;br /&gt;
* [[AVR Softwarepool]] – Verschiedene Softwaremodule und Codeschnippsel aus der Codesammlung&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
* [http://revision3.com/systm/avr101 AVR101] – systm Videocast von Revision3 Internet Television (engl.).&lt;br /&gt;
&lt;br /&gt;
Weitere Verweise (Links) auf externe Informationen und Projekte finden sich in der &#039;&#039;&#039;[[Linksammlung#AVR|Linksammlung]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Anmerkungen ===&lt;br /&gt;
&amp;lt;!-- Dieser Teil sollte in einen anderen Artikel --&amp;gt;&lt;br /&gt;
Es gibt nur wenige Typen mit D/A-Wandler (z.B. AT90PWM2); hierfür benutze man PWM oder externe Bausteine.&lt;br /&gt;
&lt;br /&gt;
Die Takterzeugung ist bei AVRs recht einfach gehalten. So gibt es bei den meisten Modellen keine internen PLLs um „krumme“ Prozessor- oder Peripherietaktfrequenzen zu erzeugen, noch ist der Peripherie-Takt vom Prozessortakt abkoppelbar. Einige AVR verfügen über eine PLL, um damit z.B. einen Timer mit Frequenzen über der Systemfrequenz zu takten oder höhere Systemfrequenz aus niederfrequenteren Taktquellen zu erzeugen (vgl. u.a. Datenblätter ATtiny85 und ATtiny861). Die Baudrate serieller Schnittstellen lässt sich nicht gebrochen einstellen, so dass gegebenenfalls ein zur Baudrate passender Quarz oder Resonator zu verwenden ist.&lt;br /&gt;
&lt;br /&gt;
Für die serielle Programmierung des Flash-Speichers sind 4 Datenleitungen erforderlich und die Taktversorgung muss sicher gestellt sein. Es ist darauf zu achten, dass bei Einstellung der Taktquelle (Fuses) auch die vorhandene Taktquelle ausgewählt wird. Für die Hochvolt-Programmierung (so genannt wegen 12 V am RESET-Anschluss) werden je nach Chip nur 3 Signalleitungen (kleinere ATtinys) oder sehr viele Leitungen benötigt (ATmegas und große ATtinys). Einige Modelle verfügen über eine Debugwire-Schnittstelle, für die im Betrieb zwei Leitungen ausreichen.&lt;br /&gt;
&lt;br /&gt;
Nicht zu verwechseln ist die 8-bit-AVR-Serie mit AVR32. Letztere ist eine 32-bit-Architektur mit recht viel Ähnlichkeit zu Controllern auf Basis eines ARM-Cores. Controller der ATxmega-Serie verfügen über mehr Funktionen als die &amp;quot;traditionellen&amp;quot; AVR (z.B. DMA- und Eventsystem, 12Bit A-D-Wandler). ATxmega sind jedoch für 3,3V-Betrieb ausgelegt und ausschließlich in SMD-Bauform erhältlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Mikrocontroller]]&lt;br /&gt;
[[Category:AVR| ]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR&amp;diff=94972</id>
		<title>AVR</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR&amp;diff=94972"/>
		<updated>2017-01-20T16:48:08Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die AVR-[[Mikrocontroller]] von [http://www.atmel.com Atmel] sind wegen ihrer übersichtlichen internen Struktur, der [[ISP | In-System-Programmierbarkeit]], und der Vielzahl von kostenlosen Programmen zur Softwareentwicklung (Assembler, Compiler) beliebt. Diese Eigenschaften und der Umstand, dass viele Typen in einfach handhabbaren DIL-Gehäusen (DIP) verfügbar sind, machen den AVR zum idealen Mikrocontroller für Anfänger. &lt;br /&gt;
&lt;br /&gt;
Über die Bedeutung des Namens &amp;quot;AVR&amp;quot; gibt es verschiedene Ansichten; manche meinen er sei eine Abkürzung für &#039;&#039;&#039;A&#039;&#039;&#039;dvanced &#039;&#039;&#039;V&#039;&#039;&#039;irtual [[RISC|&#039;&#039;&#039;R&#039;&#039;&#039;ISC]], andere vermuten dass der Name aus den Anfangsbuchstaben der Namen der Entwickler (&#039;&#039;&#039;A&#039;&#039;&#039;lf Egin Bogen und &#039;&#039;&#039;V&#039;&#039;&#039;egard Wollan &#039;&#039;&#039;R&#039;&#039;&#039;ISC) zusammengesetzt wurde. Laut Atmel ist der Name bedeutungslos.&lt;br /&gt;
&lt;br /&gt;
KLN;ÖGBasjghaöklsjyfhxfgj&lt;br /&gt;
&lt;br /&gt;
pkadhgjnköldfh&lt;br /&gt;
&lt;br /&gt;
asdhdfgj&lt;br /&gt;
&lt;br /&gt;
jhasgljysdfh&lt;br /&gt;
&lt;br /&gt;
== Projekte ==&lt;br /&gt;
Siehe dazu auch die Artikel in der [[:Kategorie:AVR-Projekte|Kategorie AVR-Projekte]].&lt;br /&gt;
&lt;br /&gt;
* [http://www.electronicsplanet.ch/mikrocontroller/source-code/ATmega8/ATmega8-index.htm 20 C-Code Beispiele für den ATmega8]&lt;br /&gt;
* [[PWM_foxlight]] – LED Lampe mit PWM&lt;br /&gt;
* [[Digitaler Funktionsgenerator]]&lt;br /&gt;
* [[Midi Rekorder mit MMC/SD-Karte]]&lt;br /&gt;
* [[Schrittmotor-Controller (Stepper)]]&lt;br /&gt;
* [[Pulsuhrempfänger mit AVR Butterfly]]&lt;br /&gt;
* [[DCF77-Funkwecker mit AVR]]&lt;br /&gt;
* [[Fahrradcomputer]]&lt;br /&gt;
* [[Einfacher und billiger Webserver mit AtMega32]]&lt;br /&gt;
* [[AVR RFM12]]&lt;br /&gt;
* [[RF SOAP]] USB / AtMega88 / RFM12, optional LiPo Akku mit Lader&lt;br /&gt;
* [http://www.andreadrian.de/schach/#Selbstbau_Schachcomputer_SHAH Selbstbau Schachcomputer SHAH mit ATMega88V]&lt;br /&gt;
* [[Giess-o-mat]] – vollautomatische Blumengießanlage&lt;br /&gt;
* [http://www.zipfelmaus.com/led-flitzer/ POV-LED mit ATmega8, USB und Beschleunigungssensor]&lt;br /&gt;
* [http://g-heinrichs.de/attiny/ ATtiny-Mikrokontroller für Schulbedarf]&lt;br /&gt;
* [http://www.weigu.lu/b Kleine USB-Bibliothek (C, BASCOM und Assembler) für ATMEL-USB-AVRs]&lt;br /&gt;
* [http://volkszaehler.org/ Ein tolles Smartmeter mit kompletter Middleware!]&lt;br /&gt;
* [http://youtu.be/FoUycAYQEzM Snake auf einer LED Matrix]&lt;br /&gt;
* [[AVR_Transistortester]] - Universeller Bauteiletester&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
&lt;br /&gt;
* [[AVR-Tutorial]]&lt;br /&gt;
* [[AVR-GCC-Tutorial]]&lt;br /&gt;
* http://www.avr-asm-tutorial.net&lt;br /&gt;
* http://www.electronicsplanet.ch/mikrocontroller/avr-tutorial-c/avr-tutorial-c.htm Kurzanleitung zum Einrichten des STK500 und dem AVR Studio 4&lt;br /&gt;
* [http://www.weigu.lu/a weigu.lu/a]: Gratis Assembler Kurs (pdf). Mehrere hundert Seiten mit vielen neuen Grafiken. Besonders zum Selbststudium geeignet. Es existiert auch ein [http://www.weigu.lu/b/mices2 Entwicklungsboard] zum Kurs.&lt;br /&gt;
* http://www.avr-modelleisenbahn.de/controller/index.htm Datenbuch ATmega8 und Xmega384 mit Beispielen in Assembler (alles deutsch).&lt;br /&gt;
* http://www.tu-chemnitz.de/~heha/hs/ATmegaX8.chm/ = Datenblatt ATmega48/88/168/328 in deutsch, auch als CHM-Datei herunterladbar und damit offline lesbar&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
 	&lt;br /&gt;
* I.Klöckl AVR - Mikrocontroller. MegaAVR® - Entwicklung, Anwendung und Peripherie ISBN 978-3-11-040768-6 (De Gruyter 2015) [http://www.degruyter.com/view/product/449202 Verlags-Webseite]&lt;br /&gt;
* C.Kühnel Programmieren der AVR RISC Mikrocontroller mit BASCOM-AVR ISBN 3898119378 (2000) ISBN 3907857046 (2.Aufl.2004) ISBN 978-3-907857-14-4 (3. überarbeitete und erweiterte Auflage 2010)&lt;br /&gt;
* R.Mittermayr AVR-RISC: Embedded Software selbst entwickeln Franzis 2008 ISBN 3772341071&lt;br /&gt;
* F.Schäffer AVR: Hardware und C-Programmierung in der Praxis Elektor 2008 ISBN 3895762008 [http://www.blafusel.de/books/avr.html Webseite des Autors, Codebeispiele und Leseprobe]&lt;br /&gt;
* G.Schmitt Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie...Oldenbourg 4.Aufl.2008  ISBN 3486587900 ISBN 3486580167 (2006) ISBN 3486577174 (2005) [http://www.oldenbourg-wissenschaftsverlag.de/olb/de/1.c.1495224.de Verlags-Webseite mit Buchauszügen]&lt;br /&gt;
* M.Schwabl-Schmidt Programmiertechniken für AVR-Mikrocontroller Elektor 2008 ISBN 3895761761 [http://www.schwabl-schmidt.de/index.php/buecher Webseite des Autors]&lt;br /&gt;
* M.Schwabl-Schmidt Systemprogrammierung für AVR-Mikrocontroller Elektor 2009 ISBN 3895762180&lt;br /&gt;
* W.Trampert Messen,Steuern und Regeln mit AVR Mikrocontrollern Franzis 2004 ISBN 3772342981&lt;br /&gt;
* W.Trampert AVR-RISC Mikrocontroller Franzis ISBN 3772354769 (2003) ISBN 3772354742 (2002) ISBN 3772354750 (2000)&lt;br /&gt;
* P.Urbanek Embedded Systems: Ein umfassendes Grundlagenwerk ... (2007) ISBN 3981123018 [http://www.ulb.tu-darmstadt.de/tocs/188146911.pdf Inhaltsverzeichnis]&lt;br /&gt;
* S./F.Volpe AVR-Mikrocontroller-Praxis Elektor 2001 ISBN 3895760633&lt;br /&gt;
* R.Walter AVR-Mikrocontroller-Lehrbuch 3. Auflage Denkholz 2009 ISBN 9783981189445 [http://www.rowalt.de/mc/avr/avrbuch/index.htm Webseite des Autors, Buch-Download in geringer Auflösung]&lt;br /&gt;
&lt;br /&gt;
== Tipps &amp;amp; Hinweise ==&lt;br /&gt;
&lt;br /&gt;
* [[AVR Typen]] – Die verschiedenen Typen (AT90S, ATmega, ATtiny)&lt;br /&gt;
* [[AVR Checkliste]] – Liste mit Hinweisen zur Lösung üblicher Probleme&lt;br /&gt;
* [http://blog.coldtobi.de/1_coldtobis_blog/archive/87_little_endianess_guide_for_atmel_avr.html (Little) Endianess Guide for Atmel AVR] Übersicht über die Endianess der AVR und AVR32&lt;br /&gt;
* [[AVR Fuses|Fuse-Bits]] – Das Setzen der Fuse-Bits ist ein berüchtigter Fallstrick bei den AVRs; vor dem Rumspielen damit unbedingt diese Hinweise lesen!&lt;br /&gt;
* [[AVR In System Programmer]] – Programmierhardware&lt;br /&gt;
* [[Pony-Prog Tutorial]] – Hinweise zur Programmiersoftware PonyProg&lt;br /&gt;
* [[AVRDUDE]] – Programmiersoftware für die Kommandozeile&lt;br /&gt;
* [[AVR-GCC-Codeoptimierung]] – Wie man mehr aus dem Controller herausholen kann, ohne ein Assembler-Guru sein zu muessen.&lt;br /&gt;
* [[AVR Softwarepool]] – Verschiedene Softwaremodule und Codeschnippsel aus der Codesammlung&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
* [http://revision3.com/systm/avr101 AVR101] – systm Videocast von Revision3 Internet Television (engl.).&lt;br /&gt;
&lt;br /&gt;
Weitere Verweise (Links) auf externe Informationen und Projekte finden sich in der &#039;&#039;&#039;[[Linksammlung#AVR|Linksammlung]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Anmerkungen ===&lt;br /&gt;
&amp;lt;!-- Dieser Teil sollte in einen anderen Artikel --&amp;gt;&lt;br /&gt;
Es gibt nur wenige Typen mit D/A-Wandler (z.B. AT90PWM2); hierfür benutze man PWM oder externe Bausteine.&lt;br /&gt;
&lt;br /&gt;
Die Takterzeugung ist bei AVRs recht einfach gehalten. So gibt es bei den meisten Modellen keine internen PLLs um „krumme“ Prozessor- oder Peripherietaktfrequenzen zu erzeugen, noch ist der Peripherie-Takt vom Prozessortakt abkoppelbar. Einige AVR verfügen über eine PLL, um damit z.B. einen Timer mit Frequenzen über der Systemfrequenz zu takten oder höhere Systemfrequenz aus niederfrequenteren Taktquellen zu erzeugen (vgl. u.a. Datenblätter ATtiny85 und ATtiny861). Die Baudrate serieller Schnittstellen lässt sich nicht gebrochen einstellen, so dass gegebenenfalls ein zur Baudrate passender Quarz oder Resonator zu verwenden ist.&lt;br /&gt;
&lt;br /&gt;
Für die serielle Programmierung des Flash-Speichers sind 4 Datenleitungen erforderlich und die Taktversorgung muss sicher gestellt sein. Es ist darauf zu achten, dass bei Einstellung der Taktquelle (Fuses) auch die vorhandene Taktquelle ausgewählt wird. Für die Hochvolt-Programmierung (so genannt wegen 12 V am RESET-Anschluss) werden je nach Chip nur 3 Signalleitungen (kleinere ATtinys) oder sehr viele Leitungen benötigt (ATmegas und große ATtinys). Einige Modelle verfügen über eine Debugwire-Schnittstelle, für die im Betrieb zwei Leitungen ausreichen.&lt;br /&gt;
&lt;br /&gt;
Nicht zu verwechseln ist die 8-bit-AVR-Serie mit AVR32. Letztere ist eine 32-bit-Architektur mit recht viel Ähnlichkeit zu Controllern auf Basis eines ARM-Cores. Controller der ATxmega-Serie verfügen über mehr Funktionen als die &amp;quot;traditionellen&amp;quot; AVR (z.B. DMA- und Eventsystem, 12Bit A-D-Wandler). ATxmega sind jedoch für 3,3V-Betrieb ausgelegt und ausschließlich in SMD-Bauform erhältlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Mikrocontroller]]&lt;br /&gt;
[[Category:AVR| ]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR&amp;diff=94971</id>
		<title>AVR</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR&amp;diff=94971"/>
		<updated>2017-01-20T16:48:02Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die AVR-[[Mikrocontroller]] von [http://www.atmel.com Atmel] sind wegen ihrer übersichtlichen internen Struktur, der [[ISP | In-System-Programmierbarkeit]], und der Vielzahl von kostenlosen Programmen zur Softwareentwicklung (Assembler, Compiler) beliebt. Diese Eigenschaften und der Umstand, dass viele Typen in einfach handhabbaren DIL-Gehäusen (DIP) verfügbar sind, machen den AVR zum idealen Mikrocontroller für Anfänger. &lt;br /&gt;
&lt;br /&gt;
Über die Bedeutung des Namens &amp;quot;AVR&amp;quot; gibt es verschiedene Ansichten; manche meinen er sei eine Abkürzung für &#039;&#039;&#039;A&#039;&#039;&#039;dvanced &#039;&#039;&#039;V&#039;&#039;&#039;irtual [[RISC|&#039;&#039;&#039;R&#039;&#039;&#039;ISC]], andere vermuten dass der Name aus den Anfangsbuchstaben der Namen der Entwickler (&#039;&#039;&#039;A&#039;&#039;&#039;lf Egin Bogen und &#039;&#039;&#039;V&#039;&#039;&#039;egard Wollan &#039;&#039;&#039;R&#039;&#039;&#039;ISC) zusammengesetzt wurde. Laut Atmel ist der Name bedeutungslos.&lt;br /&gt;
&lt;br /&gt;
KLN;ÖGBasjghaöklsjyfhxfgj&lt;br /&gt;
&lt;br /&gt;
pkadhgjnköldfh&lt;br /&gt;
&lt;br /&gt;
asdhdfgj&lt;br /&gt;
&lt;br /&gt;
== Boards &amp;amp; Starterkits ==&lt;br /&gt;
&lt;br /&gt;
Siehe dazu auch die Artikel in der [[:Kategorie:AVR-Boards|Kategorie AVR-Boards]] und den Artikel zur [[AVR_In_System_Programmer|AVR Programmierung]].&lt;br /&gt;
&lt;br /&gt;
* [[STK200]]&lt;br /&gt;
* [[STK500]]&lt;br /&gt;
* [[STK600]]&lt;br /&gt;
* AVR-ISP / [[AVR_In_System_Programmer#Atmel_AVRISP_MKII|AVRISP mkII]]&lt;br /&gt;
* [[AVR Dragon]]&lt;br /&gt;
* [[AVR Butterfly]]&lt;br /&gt;
* [[AVR Raven]]&lt;br /&gt;
* AVR JTAG-ICE&lt;br /&gt;
&lt;br /&gt;
* [[AVR-ISP-Stick]]&lt;br /&gt;
* [http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=64&amp;amp;products_id=126 RN-Control]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/791564/Set-C-Control-PRO-AVR32-Bit-Unit-Applicationboard?ref=list C-Control PRO] (AVR32)&lt;br /&gt;
* [http://shop.myavr.de/Systemboards%20und%20Programmer/myAVR%20Board%20MK3%2064K.htm?sp=article.sp.php&amp;amp;artID=100064 myAVR Board]&lt;br /&gt;
* [http://www.pollin.de/shop/dt/NTE5OTExOTk-/Bausaetze_Module/Lernpakete_Elektronik/Lernpaket_AVR_Mikrocontroller_in_C_programmieren.html Pollin-Starterkit]&lt;br /&gt;
* [http://www.ehajo.de/Bausaetze/aTeVaL aTeVaL-Board] – Nachfolger des bekannten Pollin Evalboards. ISP-mkii-Klon &amp;amp; Seriell/USB-Wandler via USB. Testhardware auf der Platine: Taster, LED, Summer, Potis, ...&lt;br /&gt;
* [http://www.lochraster.org/rumpus Rumpus von lochraster.org] ist ein günstiges und gut dokumentiertes Starterkit mit Atmega 168&lt;br /&gt;
* [http://www.das-labor.org/wiki/Laborboard  Laborboard von das-labor.org] – Bauplan Lochrasterplatine mit Atmega32&lt;br /&gt;
* [http://nibo.nicai-systems.de Roboterbausatz NIBO 2] – autonomer Roboter mit einem ATmega128 und einem ATmega88 / [http://nibobee.nicai-systems.de Roboterbausatz NIBObee] – Roboter für Einsteiger mit ATmega16 und integriertem USB-Programmer&lt;br /&gt;
* [http://www.nerdkits.com Nerdkit – Starterkit inkl. Doku]&lt;br /&gt;
* [http://www.bob3.org BOB3] - Board mit ATmega88 zum Einstieg in die Programmierung, mit [http://www.progbob.org ausführlichem Online-Tutorial], speziell für Schüler&lt;br /&gt;
* [http://arduino.cc/ Arduino] – Ein modulares System mit verschiedenen Entwicklungsboards (insbesondere auch eins mit ATmega1280, dem mit den vielen dünnen Beinchen), das aufgrund der Nutzung einer JAVA-IDE und &amp;quot;Wiring&amp;quot; besonders einfach zu nutzen ist. Es gibt verschiedene Clones unter Namen wie Freeduino, Seeeduino etc., auch den Lilypad zum Einnähen in Kleidung und Verschaltung mittels leitender Fäden. Die neueren Versionen können über einen standardmäßig mit ausgelieferten Bootloader ohne sonstige Hardware direkt über USB bespielt werden.&lt;br /&gt;
* [[Modulares Board]]&lt;br /&gt;
* [http://www.aevum-mechatronik.de/shop/shop/USER_ARTIKEL_HANDLING_AUFRUF.php?von_suchresultat=true&amp;amp;Ziel_ID=805&amp;amp;Kategorie_ID=148 Modularis-Einsteigerset]&lt;br /&gt;
* [http://weigu.lu/b/mices2 mices2] – Entwicklungsboard zum [http://www.weigu.lu/a Gratis Assembler Kurs]. Integriertes Programmiergerät (USB, avrisp mk2 kompatibel). Spannungsvrsorgung über USB. Platine einseitig, leicht zu bestücken. Viele Schnittstellen (1-Wire, I2C, EIA232 ...), D/A-Wandler, Mikrofonschaltung., Audioverstärker ...&lt;br /&gt;
* [https://guloshop.de/shop/Mikrocontroller-Programmierung/::45.html gulostart] – [[Steckbrett|Steckplatinen]]-basiertes Lernpaket / Einsteiger-Set mit ausführlicher Anleitung. Verwendet ausschließlich [http://de.wikipedia.org/wiki/Open_source Open-Source-Software], kann fast alle DIP-ATtiny/ATmega programmieren. Für USB-Schnittstelle.&lt;br /&gt;
* [http://corpsman.de/index.php?doc=atmel/atmegaboard Atmegaboard] Eagle Daten für ein Testboard zur Nutzung 2er Atmegas gleichzeitig. Weitere Adapterplatinen sowie Source Code sind ebenfalls verfügbar.&lt;br /&gt;
* [http://matrixstorm.com/avr/tinyusbboard/ tinyUSBboard] – Ein sehr sehr preiswertes, Arduino und BASCOM kompatibles Board mit onboard USB Interface und [http://matrixstorm.com/avr/tinyusbboard/#firmwaresotherbootloader auswechelbarem Bootloader].&lt;br /&gt;
* [https://www.olimex.com/Products/AVR/ verschiedene Boards von Olimex]&lt;br /&gt;
&lt;br /&gt;
== Projekte ==&lt;br /&gt;
Siehe dazu auch die Artikel in der [[:Kategorie:AVR-Projekte|Kategorie AVR-Projekte]].&lt;br /&gt;
&lt;br /&gt;
* [http://www.electronicsplanet.ch/mikrocontroller/source-code/ATmega8/ATmega8-index.htm 20 C-Code Beispiele für den ATmega8]&lt;br /&gt;
* [[PWM_foxlight]] – LED Lampe mit PWM&lt;br /&gt;
* [[Digitaler Funktionsgenerator]]&lt;br /&gt;
* [[Midi Rekorder mit MMC/SD-Karte]]&lt;br /&gt;
* [[Schrittmotor-Controller (Stepper)]]&lt;br /&gt;
* [[Pulsuhrempfänger mit AVR Butterfly]]&lt;br /&gt;
* [[DCF77-Funkwecker mit AVR]]&lt;br /&gt;
* [[Fahrradcomputer]]&lt;br /&gt;
* [[Einfacher und billiger Webserver mit AtMega32]]&lt;br /&gt;
* [[AVR RFM12]]&lt;br /&gt;
* [[RF SOAP]] USB / AtMega88 / RFM12, optional LiPo Akku mit Lader&lt;br /&gt;
* [http://www.andreadrian.de/schach/#Selbstbau_Schachcomputer_SHAH Selbstbau Schachcomputer SHAH mit ATMega88V]&lt;br /&gt;
* [[Giess-o-mat]] – vollautomatische Blumengießanlage&lt;br /&gt;
* [http://www.zipfelmaus.com/led-flitzer/ POV-LED mit ATmega8, USB und Beschleunigungssensor]&lt;br /&gt;
* [http://g-heinrichs.de/attiny/ ATtiny-Mikrokontroller für Schulbedarf]&lt;br /&gt;
* [http://www.weigu.lu/b Kleine USB-Bibliothek (C, BASCOM und Assembler) für ATMEL-USB-AVRs]&lt;br /&gt;
* [http://volkszaehler.org/ Ein tolles Smartmeter mit kompletter Middleware!]&lt;br /&gt;
* [http://youtu.be/FoUycAYQEzM Snake auf einer LED Matrix]&lt;br /&gt;
* [[AVR_Transistortester]] - Universeller Bauteiletester&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
&lt;br /&gt;
* [[AVR-Tutorial]]&lt;br /&gt;
* [[AVR-GCC-Tutorial]]&lt;br /&gt;
* http://www.avr-asm-tutorial.net&lt;br /&gt;
* http://www.electronicsplanet.ch/mikrocontroller/avr-tutorial-c/avr-tutorial-c.htm Kurzanleitung zum Einrichten des STK500 und dem AVR Studio 4&lt;br /&gt;
* [http://www.weigu.lu/a weigu.lu/a]: Gratis Assembler Kurs (pdf). Mehrere hundert Seiten mit vielen neuen Grafiken. Besonders zum Selbststudium geeignet. Es existiert auch ein [http://www.weigu.lu/b/mices2 Entwicklungsboard] zum Kurs.&lt;br /&gt;
* http://www.avr-modelleisenbahn.de/controller/index.htm Datenbuch ATmega8 und Xmega384 mit Beispielen in Assembler (alles deutsch).&lt;br /&gt;
* http://www.tu-chemnitz.de/~heha/hs/ATmegaX8.chm/ = Datenblatt ATmega48/88/168/328 in deutsch, auch als CHM-Datei herunterladbar und damit offline lesbar&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
 	&lt;br /&gt;
* I.Klöckl AVR - Mikrocontroller. MegaAVR® - Entwicklung, Anwendung und Peripherie ISBN 978-3-11-040768-6 (De Gruyter 2015) [http://www.degruyter.com/view/product/449202 Verlags-Webseite]&lt;br /&gt;
* C.Kühnel Programmieren der AVR RISC Mikrocontroller mit BASCOM-AVR ISBN 3898119378 (2000) ISBN 3907857046 (2.Aufl.2004) ISBN 978-3-907857-14-4 (3. überarbeitete und erweiterte Auflage 2010)&lt;br /&gt;
* R.Mittermayr AVR-RISC: Embedded Software selbst entwickeln Franzis 2008 ISBN 3772341071&lt;br /&gt;
* F.Schäffer AVR: Hardware und C-Programmierung in der Praxis Elektor 2008 ISBN 3895762008 [http://www.blafusel.de/books/avr.html Webseite des Autors, Codebeispiele und Leseprobe]&lt;br /&gt;
* G.Schmitt Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie...Oldenbourg 4.Aufl.2008  ISBN 3486587900 ISBN 3486580167 (2006) ISBN 3486577174 (2005) [http://www.oldenbourg-wissenschaftsverlag.de/olb/de/1.c.1495224.de Verlags-Webseite mit Buchauszügen]&lt;br /&gt;
* M.Schwabl-Schmidt Programmiertechniken für AVR-Mikrocontroller Elektor 2008 ISBN 3895761761 [http://www.schwabl-schmidt.de/index.php/buecher Webseite des Autors]&lt;br /&gt;
* M.Schwabl-Schmidt Systemprogrammierung für AVR-Mikrocontroller Elektor 2009 ISBN 3895762180&lt;br /&gt;
* W.Trampert Messen,Steuern und Regeln mit AVR Mikrocontrollern Franzis 2004 ISBN 3772342981&lt;br /&gt;
* W.Trampert AVR-RISC Mikrocontroller Franzis ISBN 3772354769 (2003) ISBN 3772354742 (2002) ISBN 3772354750 (2000)&lt;br /&gt;
* P.Urbanek Embedded Systems: Ein umfassendes Grundlagenwerk ... (2007) ISBN 3981123018 [http://www.ulb.tu-darmstadt.de/tocs/188146911.pdf Inhaltsverzeichnis]&lt;br /&gt;
* S./F.Volpe AVR-Mikrocontroller-Praxis Elektor 2001 ISBN 3895760633&lt;br /&gt;
* R.Walter AVR-Mikrocontroller-Lehrbuch 3. Auflage Denkholz 2009 ISBN 9783981189445 [http://www.rowalt.de/mc/avr/avrbuch/index.htm Webseite des Autors, Buch-Download in geringer Auflösung]&lt;br /&gt;
&lt;br /&gt;
== Tipps &amp;amp; Hinweise ==&lt;br /&gt;
&lt;br /&gt;
* [[AVR Typen]] – Die verschiedenen Typen (AT90S, ATmega, ATtiny)&lt;br /&gt;
* [[AVR Checkliste]] – Liste mit Hinweisen zur Lösung üblicher Probleme&lt;br /&gt;
* [http://blog.coldtobi.de/1_coldtobis_blog/archive/87_little_endianess_guide_for_atmel_avr.html (Little) Endianess Guide for Atmel AVR] Übersicht über die Endianess der AVR und AVR32&lt;br /&gt;
* [[AVR Fuses|Fuse-Bits]] – Das Setzen der Fuse-Bits ist ein berüchtigter Fallstrick bei den AVRs; vor dem Rumspielen damit unbedingt diese Hinweise lesen!&lt;br /&gt;
* [[AVR In System Programmer]] – Programmierhardware&lt;br /&gt;
* [[Pony-Prog Tutorial]] – Hinweise zur Programmiersoftware PonyProg&lt;br /&gt;
* [[AVRDUDE]] – Programmiersoftware für die Kommandozeile&lt;br /&gt;
* [[AVR-GCC-Codeoptimierung]] – Wie man mehr aus dem Controller herausholen kann, ohne ein Assembler-Guru sein zu muessen.&lt;br /&gt;
* [[AVR Softwarepool]] – Verschiedene Softwaremodule und Codeschnippsel aus der Codesammlung&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
* [http://revision3.com/systm/avr101 AVR101] – systm Videocast von Revision3 Internet Television (engl.).&lt;br /&gt;
&lt;br /&gt;
Weitere Verweise (Links) auf externe Informationen und Projekte finden sich in der &#039;&#039;&#039;[[Linksammlung#AVR|Linksammlung]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Anmerkungen ===&lt;br /&gt;
&amp;lt;!-- Dieser Teil sollte in einen anderen Artikel --&amp;gt;&lt;br /&gt;
Es gibt nur wenige Typen mit D/A-Wandler (z.B. AT90PWM2); hierfür benutze man PWM oder externe Bausteine.&lt;br /&gt;
&lt;br /&gt;
Die Takterzeugung ist bei AVRs recht einfach gehalten. So gibt es bei den meisten Modellen keine internen PLLs um „krumme“ Prozessor- oder Peripherietaktfrequenzen zu erzeugen, noch ist der Peripherie-Takt vom Prozessortakt abkoppelbar. Einige AVR verfügen über eine PLL, um damit z.B. einen Timer mit Frequenzen über der Systemfrequenz zu takten oder höhere Systemfrequenz aus niederfrequenteren Taktquellen zu erzeugen (vgl. u.a. Datenblätter ATtiny85 und ATtiny861). Die Baudrate serieller Schnittstellen lässt sich nicht gebrochen einstellen, so dass gegebenenfalls ein zur Baudrate passender Quarz oder Resonator zu verwenden ist.&lt;br /&gt;
&lt;br /&gt;
Für die serielle Programmierung des Flash-Speichers sind 4 Datenleitungen erforderlich und die Taktversorgung muss sicher gestellt sein. Es ist darauf zu achten, dass bei Einstellung der Taktquelle (Fuses) auch die vorhandene Taktquelle ausgewählt wird. Für die Hochvolt-Programmierung (so genannt wegen 12 V am RESET-Anschluss) werden je nach Chip nur 3 Signalleitungen (kleinere ATtinys) oder sehr viele Leitungen benötigt (ATmegas und große ATtinys). Einige Modelle verfügen über eine Debugwire-Schnittstelle, für die im Betrieb zwei Leitungen ausreichen.&lt;br /&gt;
&lt;br /&gt;
Nicht zu verwechseln ist die 8-bit-AVR-Serie mit AVR32. Letztere ist eine 32-bit-Architektur mit recht viel Ähnlichkeit zu Controllern auf Basis eines ARM-Cores. Controller der ATxmega-Serie verfügen über mehr Funktionen als die &amp;quot;traditionellen&amp;quot; AVR (z.B. DMA- und Eventsystem, 12Bit A-D-Wandler). ATxmega sind jedoch für 3,3V-Betrieb ausgelegt und ausschließlich in SMD-Bauform erhältlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Mikrocontroller]]&lt;br /&gt;
[[Category:AVR| ]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR&amp;diff=94970</id>
		<title>AVR</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR&amp;diff=94970"/>
		<updated>2017-01-20T16:47:55Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die AVR-[[Mikrocontroller]] von [http://www.atmel.com Atmel] sind wegen ihrer übersichtlichen internen Struktur, der [[ISP | In-System-Programmierbarkeit]], und der Vielzahl von kostenlosen Programmen zur Softwareentwicklung (Assembler, Compiler) beliebt. Diese Eigenschaften und der Umstand, dass viele Typen in einfach handhabbaren DIL-Gehäusen (DIP) verfügbar sind, machen den AVR zum idealen Mikrocontroller für Anfänger. &lt;br /&gt;
&lt;br /&gt;
Über die Bedeutung des Namens &amp;quot;AVR&amp;quot; gibt es verschiedene Ansichten; manche meinen er sei eine Abkürzung für &#039;&#039;&#039;A&#039;&#039;&#039;dvanced &#039;&#039;&#039;V&#039;&#039;&#039;irtual [[RISC|&#039;&#039;&#039;R&#039;&#039;&#039;ISC]], andere vermuten dass der Name aus den Anfangsbuchstaben der Namen der Entwickler (&#039;&#039;&#039;A&#039;&#039;&#039;lf Egin Bogen und &#039;&#039;&#039;V&#039;&#039;&#039;egard Wollan &#039;&#039;&#039;R&#039;&#039;&#039;ISC) zusammengesetzt wurde. Laut Atmel ist der Name bedeutungslos.&lt;br /&gt;
&lt;br /&gt;
KLN;ÖGBasjghaöklsjyfhxfgj&lt;br /&gt;
&lt;br /&gt;
pkadhgjnköldfh&lt;br /&gt;
&lt;br /&gt;
== Programmiergeräte ==&lt;br /&gt;
&lt;br /&gt;
Siehe Hauptartikel [[AVR In System Programmer]].&lt;br /&gt;
&lt;br /&gt;
== Boards &amp;amp; Starterkits ==&lt;br /&gt;
&lt;br /&gt;
Siehe dazu auch die Artikel in der [[:Kategorie:AVR-Boards|Kategorie AVR-Boards]] und den Artikel zur [[AVR_In_System_Programmer|AVR Programmierung]].&lt;br /&gt;
&lt;br /&gt;
* [[STK200]]&lt;br /&gt;
* [[STK500]]&lt;br /&gt;
* [[STK600]]&lt;br /&gt;
* AVR-ISP / [[AVR_In_System_Programmer#Atmel_AVRISP_MKII|AVRISP mkII]]&lt;br /&gt;
* [[AVR Dragon]]&lt;br /&gt;
* [[AVR Butterfly]]&lt;br /&gt;
* [[AVR Raven]]&lt;br /&gt;
* AVR JTAG-ICE&lt;br /&gt;
&lt;br /&gt;
* [[AVR-ISP-Stick]]&lt;br /&gt;
* [http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=64&amp;amp;products_id=126 RN-Control]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/791564/Set-C-Control-PRO-AVR32-Bit-Unit-Applicationboard?ref=list C-Control PRO] (AVR32)&lt;br /&gt;
* [http://shop.myavr.de/Systemboards%20und%20Programmer/myAVR%20Board%20MK3%2064K.htm?sp=article.sp.php&amp;amp;artID=100064 myAVR Board]&lt;br /&gt;
* [http://www.pollin.de/shop/dt/NTE5OTExOTk-/Bausaetze_Module/Lernpakete_Elektronik/Lernpaket_AVR_Mikrocontroller_in_C_programmieren.html Pollin-Starterkit]&lt;br /&gt;
* [http://www.ehajo.de/Bausaetze/aTeVaL aTeVaL-Board] – Nachfolger des bekannten Pollin Evalboards. ISP-mkii-Klon &amp;amp; Seriell/USB-Wandler via USB. Testhardware auf der Platine: Taster, LED, Summer, Potis, ...&lt;br /&gt;
* [http://www.lochraster.org/rumpus Rumpus von lochraster.org] ist ein günstiges und gut dokumentiertes Starterkit mit Atmega 168&lt;br /&gt;
* [http://www.das-labor.org/wiki/Laborboard  Laborboard von das-labor.org] – Bauplan Lochrasterplatine mit Atmega32&lt;br /&gt;
* [http://nibo.nicai-systems.de Roboterbausatz NIBO 2] – autonomer Roboter mit einem ATmega128 und einem ATmega88 / [http://nibobee.nicai-systems.de Roboterbausatz NIBObee] – Roboter für Einsteiger mit ATmega16 und integriertem USB-Programmer&lt;br /&gt;
* [http://www.nerdkits.com Nerdkit – Starterkit inkl. Doku]&lt;br /&gt;
* [http://www.bob3.org BOB3] - Board mit ATmega88 zum Einstieg in die Programmierung, mit [http://www.progbob.org ausführlichem Online-Tutorial], speziell für Schüler&lt;br /&gt;
* [http://arduino.cc/ Arduino] – Ein modulares System mit verschiedenen Entwicklungsboards (insbesondere auch eins mit ATmega1280, dem mit den vielen dünnen Beinchen), das aufgrund der Nutzung einer JAVA-IDE und &amp;quot;Wiring&amp;quot; besonders einfach zu nutzen ist. Es gibt verschiedene Clones unter Namen wie Freeduino, Seeeduino etc., auch den Lilypad zum Einnähen in Kleidung und Verschaltung mittels leitender Fäden. Die neueren Versionen können über einen standardmäßig mit ausgelieferten Bootloader ohne sonstige Hardware direkt über USB bespielt werden.&lt;br /&gt;
* [[Modulares Board]]&lt;br /&gt;
* [http://www.aevum-mechatronik.de/shop/shop/USER_ARTIKEL_HANDLING_AUFRUF.php?von_suchresultat=true&amp;amp;Ziel_ID=805&amp;amp;Kategorie_ID=148 Modularis-Einsteigerset]&lt;br /&gt;
* [http://weigu.lu/b/mices2 mices2] – Entwicklungsboard zum [http://www.weigu.lu/a Gratis Assembler Kurs]. Integriertes Programmiergerät (USB, avrisp mk2 kompatibel). Spannungsvrsorgung über USB. Platine einseitig, leicht zu bestücken. Viele Schnittstellen (1-Wire, I2C, EIA232 ...), D/A-Wandler, Mikrofonschaltung., Audioverstärker ...&lt;br /&gt;
* [https://guloshop.de/shop/Mikrocontroller-Programmierung/::45.html gulostart] – [[Steckbrett|Steckplatinen]]-basiertes Lernpaket / Einsteiger-Set mit ausführlicher Anleitung. Verwendet ausschließlich [http://de.wikipedia.org/wiki/Open_source Open-Source-Software], kann fast alle DIP-ATtiny/ATmega programmieren. Für USB-Schnittstelle.&lt;br /&gt;
* [http://corpsman.de/index.php?doc=atmel/atmegaboard Atmegaboard] Eagle Daten für ein Testboard zur Nutzung 2er Atmegas gleichzeitig. Weitere Adapterplatinen sowie Source Code sind ebenfalls verfügbar.&lt;br /&gt;
* [http://matrixstorm.com/avr/tinyusbboard/ tinyUSBboard] – Ein sehr sehr preiswertes, Arduino und BASCOM kompatibles Board mit onboard USB Interface und [http://matrixstorm.com/avr/tinyusbboard/#firmwaresotherbootloader auswechelbarem Bootloader].&lt;br /&gt;
* [https://www.olimex.com/Products/AVR/ verschiedene Boards von Olimex]&lt;br /&gt;
&lt;br /&gt;
== Projekte ==&lt;br /&gt;
Siehe dazu auch die Artikel in der [[:Kategorie:AVR-Projekte|Kategorie AVR-Projekte]].&lt;br /&gt;
&lt;br /&gt;
* [http://www.electronicsplanet.ch/mikrocontroller/source-code/ATmega8/ATmega8-index.htm 20 C-Code Beispiele für den ATmega8]&lt;br /&gt;
* [[PWM_foxlight]] – LED Lampe mit PWM&lt;br /&gt;
* [[Digitaler Funktionsgenerator]]&lt;br /&gt;
* [[Midi Rekorder mit MMC/SD-Karte]]&lt;br /&gt;
* [[Schrittmotor-Controller (Stepper)]]&lt;br /&gt;
* [[Pulsuhrempfänger mit AVR Butterfly]]&lt;br /&gt;
* [[DCF77-Funkwecker mit AVR]]&lt;br /&gt;
* [[Fahrradcomputer]]&lt;br /&gt;
* [[Einfacher und billiger Webserver mit AtMega32]]&lt;br /&gt;
* [[AVR RFM12]]&lt;br /&gt;
* [[RF SOAP]] USB / AtMega88 / RFM12, optional LiPo Akku mit Lader&lt;br /&gt;
* [http://www.andreadrian.de/schach/#Selbstbau_Schachcomputer_SHAH Selbstbau Schachcomputer SHAH mit ATMega88V]&lt;br /&gt;
* [[Giess-o-mat]] – vollautomatische Blumengießanlage&lt;br /&gt;
* [http://www.zipfelmaus.com/led-flitzer/ POV-LED mit ATmega8, USB und Beschleunigungssensor]&lt;br /&gt;
* [http://g-heinrichs.de/attiny/ ATtiny-Mikrokontroller für Schulbedarf]&lt;br /&gt;
* [http://www.weigu.lu/b Kleine USB-Bibliothek (C, BASCOM und Assembler) für ATMEL-USB-AVRs]&lt;br /&gt;
* [http://volkszaehler.org/ Ein tolles Smartmeter mit kompletter Middleware!]&lt;br /&gt;
* [http://youtu.be/FoUycAYQEzM Snake auf einer LED Matrix]&lt;br /&gt;
* [[AVR_Transistortester]] - Universeller Bauteiletester&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
&lt;br /&gt;
* [[AVR-Tutorial]]&lt;br /&gt;
* [[AVR-GCC-Tutorial]]&lt;br /&gt;
* http://www.avr-asm-tutorial.net&lt;br /&gt;
* http://www.electronicsplanet.ch/mikrocontroller/avr-tutorial-c/avr-tutorial-c.htm Kurzanleitung zum Einrichten des STK500 und dem AVR Studio 4&lt;br /&gt;
* [http://www.weigu.lu/a weigu.lu/a]: Gratis Assembler Kurs (pdf). Mehrere hundert Seiten mit vielen neuen Grafiken. Besonders zum Selbststudium geeignet. Es existiert auch ein [http://www.weigu.lu/b/mices2 Entwicklungsboard] zum Kurs.&lt;br /&gt;
* http://www.avr-modelleisenbahn.de/controller/index.htm Datenbuch ATmega8 und Xmega384 mit Beispielen in Assembler (alles deutsch).&lt;br /&gt;
* http://www.tu-chemnitz.de/~heha/hs/ATmegaX8.chm/ = Datenblatt ATmega48/88/168/328 in deutsch, auch als CHM-Datei herunterladbar und damit offline lesbar&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
 	&lt;br /&gt;
* I.Klöckl AVR - Mikrocontroller. MegaAVR® - Entwicklung, Anwendung und Peripherie ISBN 978-3-11-040768-6 (De Gruyter 2015) [http://www.degruyter.com/view/product/449202 Verlags-Webseite]&lt;br /&gt;
* C.Kühnel Programmieren der AVR RISC Mikrocontroller mit BASCOM-AVR ISBN 3898119378 (2000) ISBN 3907857046 (2.Aufl.2004) ISBN 978-3-907857-14-4 (3. überarbeitete und erweiterte Auflage 2010)&lt;br /&gt;
* R.Mittermayr AVR-RISC: Embedded Software selbst entwickeln Franzis 2008 ISBN 3772341071&lt;br /&gt;
* F.Schäffer AVR: Hardware und C-Programmierung in der Praxis Elektor 2008 ISBN 3895762008 [http://www.blafusel.de/books/avr.html Webseite des Autors, Codebeispiele und Leseprobe]&lt;br /&gt;
* G.Schmitt Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie...Oldenbourg 4.Aufl.2008  ISBN 3486587900 ISBN 3486580167 (2006) ISBN 3486577174 (2005) [http://www.oldenbourg-wissenschaftsverlag.de/olb/de/1.c.1495224.de Verlags-Webseite mit Buchauszügen]&lt;br /&gt;
* M.Schwabl-Schmidt Programmiertechniken für AVR-Mikrocontroller Elektor 2008 ISBN 3895761761 [http://www.schwabl-schmidt.de/index.php/buecher Webseite des Autors]&lt;br /&gt;
* M.Schwabl-Schmidt Systemprogrammierung für AVR-Mikrocontroller Elektor 2009 ISBN 3895762180&lt;br /&gt;
* W.Trampert Messen,Steuern und Regeln mit AVR Mikrocontrollern Franzis 2004 ISBN 3772342981&lt;br /&gt;
* W.Trampert AVR-RISC Mikrocontroller Franzis ISBN 3772354769 (2003) ISBN 3772354742 (2002) ISBN 3772354750 (2000)&lt;br /&gt;
* P.Urbanek Embedded Systems: Ein umfassendes Grundlagenwerk ... (2007) ISBN 3981123018 [http://www.ulb.tu-darmstadt.de/tocs/188146911.pdf Inhaltsverzeichnis]&lt;br /&gt;
* S./F.Volpe AVR-Mikrocontroller-Praxis Elektor 2001 ISBN 3895760633&lt;br /&gt;
* R.Walter AVR-Mikrocontroller-Lehrbuch 3. Auflage Denkholz 2009 ISBN 9783981189445 [http://www.rowalt.de/mc/avr/avrbuch/index.htm Webseite des Autors, Buch-Download in geringer Auflösung]&lt;br /&gt;
&lt;br /&gt;
== Tipps &amp;amp; Hinweise ==&lt;br /&gt;
&lt;br /&gt;
* [[AVR Typen]] – Die verschiedenen Typen (AT90S, ATmega, ATtiny)&lt;br /&gt;
* [[AVR Checkliste]] – Liste mit Hinweisen zur Lösung üblicher Probleme&lt;br /&gt;
* [http://blog.coldtobi.de/1_coldtobis_blog/archive/87_little_endianess_guide_for_atmel_avr.html (Little) Endianess Guide for Atmel AVR] Übersicht über die Endianess der AVR und AVR32&lt;br /&gt;
* [[AVR Fuses|Fuse-Bits]] – Das Setzen der Fuse-Bits ist ein berüchtigter Fallstrick bei den AVRs; vor dem Rumspielen damit unbedingt diese Hinweise lesen!&lt;br /&gt;
* [[AVR In System Programmer]] – Programmierhardware&lt;br /&gt;
* [[Pony-Prog Tutorial]] – Hinweise zur Programmiersoftware PonyProg&lt;br /&gt;
* [[AVRDUDE]] – Programmiersoftware für die Kommandozeile&lt;br /&gt;
* [[AVR-GCC-Codeoptimierung]] – Wie man mehr aus dem Controller herausholen kann, ohne ein Assembler-Guru sein zu muessen.&lt;br /&gt;
* [[AVR Softwarepool]] – Verschiedene Softwaremodule und Codeschnippsel aus der Codesammlung&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
* [http://revision3.com/systm/avr101 AVR101] – systm Videocast von Revision3 Internet Television (engl.).&lt;br /&gt;
&lt;br /&gt;
Weitere Verweise (Links) auf externe Informationen und Projekte finden sich in der &#039;&#039;&#039;[[Linksammlung#AVR|Linksammlung]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Anmerkungen ===&lt;br /&gt;
&amp;lt;!-- Dieser Teil sollte in einen anderen Artikel --&amp;gt;&lt;br /&gt;
Es gibt nur wenige Typen mit D/A-Wandler (z.B. AT90PWM2); hierfür benutze man PWM oder externe Bausteine.&lt;br /&gt;
&lt;br /&gt;
Die Takterzeugung ist bei AVRs recht einfach gehalten. So gibt es bei den meisten Modellen keine internen PLLs um „krumme“ Prozessor- oder Peripherietaktfrequenzen zu erzeugen, noch ist der Peripherie-Takt vom Prozessortakt abkoppelbar. Einige AVR verfügen über eine PLL, um damit z.B. einen Timer mit Frequenzen über der Systemfrequenz zu takten oder höhere Systemfrequenz aus niederfrequenteren Taktquellen zu erzeugen (vgl. u.a. Datenblätter ATtiny85 und ATtiny861). Die Baudrate serieller Schnittstellen lässt sich nicht gebrochen einstellen, so dass gegebenenfalls ein zur Baudrate passender Quarz oder Resonator zu verwenden ist.&lt;br /&gt;
&lt;br /&gt;
Für die serielle Programmierung des Flash-Speichers sind 4 Datenleitungen erforderlich und die Taktversorgung muss sicher gestellt sein. Es ist darauf zu achten, dass bei Einstellung der Taktquelle (Fuses) auch die vorhandene Taktquelle ausgewählt wird. Für die Hochvolt-Programmierung (so genannt wegen 12 V am RESET-Anschluss) werden je nach Chip nur 3 Signalleitungen (kleinere ATtinys) oder sehr viele Leitungen benötigt (ATmegas und große ATtinys). Einige Modelle verfügen über eine Debugwire-Schnittstelle, für die im Betrieb zwei Leitungen ausreichen.&lt;br /&gt;
&lt;br /&gt;
Nicht zu verwechseln ist die 8-bit-AVR-Serie mit AVR32. Letztere ist eine 32-bit-Architektur mit recht viel Ähnlichkeit zu Controllern auf Basis eines ARM-Cores. Controller der ATxmega-Serie verfügen über mehr Funktionen als die &amp;quot;traditionellen&amp;quot; AVR (z.B. DMA- und Eventsystem, 12Bit A-D-Wandler). ATxmega sind jedoch für 3,3V-Betrieb ausgelegt und ausschließlich in SMD-Bauform erhältlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Mikrocontroller]]&lt;br /&gt;
[[Category:AVR| ]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR&amp;diff=94969</id>
		<title>AVR</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR&amp;diff=94969"/>
		<updated>2017-01-20T16:47:46Z</updated>

		<summary type="html">&lt;p&gt;213.147.188.235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die AVR-[[Mikrocontroller]] von [http://www.atmel.com Atmel] sind wegen ihrer übersichtlichen internen Struktur, der [[ISP | In-System-Programmierbarkeit]], und der Vielzahl von kostenlosen Programmen zur Softwareentwicklung (Assembler, Compiler) beliebt. Diese Eigenschaften und der Umstand, dass viele Typen in einfach handhabbaren DIL-Gehäusen (DIP) verfügbar sind, machen den AVR zum idealen Mikrocontroller für Anfänger. &lt;br /&gt;
&lt;br /&gt;
Über die Bedeutung des Namens &amp;quot;AVR&amp;quot; gibt es verschiedene Ansichten; manche meinen er sei eine Abkürzung für &#039;&#039;&#039;A&#039;&#039;&#039;dvanced &#039;&#039;&#039;V&#039;&#039;&#039;irtual [[RISC|&#039;&#039;&#039;R&#039;&#039;&#039;ISC]], andere vermuten dass der Name aus den Anfangsbuchstaben der Namen der Entwickler (&#039;&#039;&#039;A&#039;&#039;&#039;lf Egin Bogen und &#039;&#039;&#039;V&#039;&#039;&#039;egard Wollan &#039;&#039;&#039;R&#039;&#039;&#039;ISC) zusammengesetzt wurde. Laut Atmel ist der Name bedeutungslos.&lt;br /&gt;
&lt;br /&gt;
KLN;ÖGBasjghaöklsjyfhxfgj&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* [[AVR-Studio]]: Kostenlose Enwicklungsumgebung mit Simulator&lt;br /&gt;
* [http://www.atmel.com/tools/atmelstudio.aspx Atmel Studio]: Kostenlose Enwicklungsumgebung mit Simulator&lt;br /&gt;
* [http://sourceforge.net/projects/kontrollerlab/ KontrollerLab]: Kostenlose Entwicklungsumgebung für KDE&lt;br /&gt;
* [http://corpsman.de/index.php?doc=projekte/klab Klab]: Kostenlose Entwicklungsumgebung für KDE/GTK2/Win32 (als FPC/Lazarus Quellcode verfügbar, Nachbau von KontrollerLab)&lt;br /&gt;
* [http://www.microsoft.com/germany/Express/product/visualcplusplusexpress.aspx Microsoft Visual C++ Express]: Kostenlose Enwicklungsumgebung (Win),über makefile&lt;br /&gt;
* [http://netbeans.org Netbeans]: Plugin-basierte, kostenlose Entwicklungsumgebung (Windows, Mac, Linux, und Solaris). [http://mattzz.dyndns.org/wiki/bin/view/Projects/ArduinoAndNetbeans  Hier] findet sich ein Howto für das Setup von AVR (z.B. für Arduino)&lt;br /&gt;
* [[AVR Eclipse]]: Plugin-basierte kostenlose Entwicklungsumgebung (Win, Linux, Mac)&lt;br /&gt;
* [[Code::Blocks]]: Freie Entwicklungsumgebung (Win, Linux, Mac), die auch für AVR-Projekte Unterstützung anbietet&lt;br /&gt;
* [[AVR-GCC]]: freier und kostenloser C-Compiler&lt;br /&gt;
* [http://www.mikroe.com/mikropascal/avr Mikropascal] mit einer eingeschränkten kostenlosen Testversion&lt;br /&gt;
* [[LunaAVR]]: Kostenlose, objektbasierte Basic/Pascal-ähnliche Programmiersprache und Entwicklungsumgebung mit Compiler/Assembler und Disassembler (Win, Linux, Mac). http://avr.myluna.de&lt;br /&gt;
* [http://sourceforge.net/projects/avra/ AVRA]: freier und kostenloser AVR-Assembler&lt;br /&gt;
* [http://www.mcselec.com/bascom-avr.htm Bascom AVR] beliebter Basic-Compiler&lt;br /&gt;
* [http://www.e-lab.de AVRCo Pascal Compiler]&lt;br /&gt;
* [http://sourceforge.net/projects/avr-ada/ AVR-Ada]: freier und kostenloser Ada-Compiler mit einigen Treibern und (sehr) knapper Laufzeitbibliothek (RTS)&lt;br /&gt;
* [http://amforth.sourceforge.net/ amforth]:  interaktiver und erweiterbarer Kommandointerpreter für AVR unter GNU Lizenz (Open Source)&lt;br /&gt;
* [[SJC]]: Experimenteller Java-Compiler unter GPL mit AVR-Unterstützung&lt;br /&gt;
&lt;br /&gt;
== Programmiergeräte ==&lt;br /&gt;
&lt;br /&gt;
Siehe Hauptartikel [[AVR In System Programmer]].&lt;br /&gt;
&lt;br /&gt;
== Boards &amp;amp; Starterkits ==&lt;br /&gt;
&lt;br /&gt;
Siehe dazu auch die Artikel in der [[:Kategorie:AVR-Boards|Kategorie AVR-Boards]] und den Artikel zur [[AVR_In_System_Programmer|AVR Programmierung]].&lt;br /&gt;
&lt;br /&gt;
* [[STK200]]&lt;br /&gt;
* [[STK500]]&lt;br /&gt;
* [[STK600]]&lt;br /&gt;
* AVR-ISP / [[AVR_In_System_Programmer#Atmel_AVRISP_MKII|AVRISP mkII]]&lt;br /&gt;
* [[AVR Dragon]]&lt;br /&gt;
* [[AVR Butterfly]]&lt;br /&gt;
* [[AVR Raven]]&lt;br /&gt;
* AVR JTAG-ICE&lt;br /&gt;
&lt;br /&gt;
* [[AVR-ISP-Stick]]&lt;br /&gt;
* [http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=64&amp;amp;products_id=126 RN-Control]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/791564/Set-C-Control-PRO-AVR32-Bit-Unit-Applicationboard?ref=list C-Control PRO] (AVR32)&lt;br /&gt;
* [http://shop.myavr.de/Systemboards%20und%20Programmer/myAVR%20Board%20MK3%2064K.htm?sp=article.sp.php&amp;amp;artID=100064 myAVR Board]&lt;br /&gt;
* [http://www.pollin.de/shop/dt/NTE5OTExOTk-/Bausaetze_Module/Lernpakete_Elektronik/Lernpaket_AVR_Mikrocontroller_in_C_programmieren.html Pollin-Starterkit]&lt;br /&gt;
* [http://www.ehajo.de/Bausaetze/aTeVaL aTeVaL-Board] – Nachfolger des bekannten Pollin Evalboards. ISP-mkii-Klon &amp;amp; Seriell/USB-Wandler via USB. Testhardware auf der Platine: Taster, LED, Summer, Potis, ...&lt;br /&gt;
* [http://www.lochraster.org/rumpus Rumpus von lochraster.org] ist ein günstiges und gut dokumentiertes Starterkit mit Atmega 168&lt;br /&gt;
* [http://www.das-labor.org/wiki/Laborboard  Laborboard von das-labor.org] – Bauplan Lochrasterplatine mit Atmega32&lt;br /&gt;
* [http://nibo.nicai-systems.de Roboterbausatz NIBO 2] – autonomer Roboter mit einem ATmega128 und einem ATmega88 / [http://nibobee.nicai-systems.de Roboterbausatz NIBObee] – Roboter für Einsteiger mit ATmega16 und integriertem USB-Programmer&lt;br /&gt;
* [http://www.nerdkits.com Nerdkit – Starterkit inkl. Doku]&lt;br /&gt;
* [http://www.bob3.org BOB3] - Board mit ATmega88 zum Einstieg in die Programmierung, mit [http://www.progbob.org ausführlichem Online-Tutorial], speziell für Schüler&lt;br /&gt;
* [http://arduino.cc/ Arduino] – Ein modulares System mit verschiedenen Entwicklungsboards (insbesondere auch eins mit ATmega1280, dem mit den vielen dünnen Beinchen), das aufgrund der Nutzung einer JAVA-IDE und &amp;quot;Wiring&amp;quot; besonders einfach zu nutzen ist. Es gibt verschiedene Clones unter Namen wie Freeduino, Seeeduino etc., auch den Lilypad zum Einnähen in Kleidung und Verschaltung mittels leitender Fäden. Die neueren Versionen können über einen standardmäßig mit ausgelieferten Bootloader ohne sonstige Hardware direkt über USB bespielt werden.&lt;br /&gt;
* [[Modulares Board]]&lt;br /&gt;
* [http://www.aevum-mechatronik.de/shop/shop/USER_ARTIKEL_HANDLING_AUFRUF.php?von_suchresultat=true&amp;amp;Ziel_ID=805&amp;amp;Kategorie_ID=148 Modularis-Einsteigerset]&lt;br /&gt;
* [http://weigu.lu/b/mices2 mices2] – Entwicklungsboard zum [http://www.weigu.lu/a Gratis Assembler Kurs]. Integriertes Programmiergerät (USB, avrisp mk2 kompatibel). Spannungsvrsorgung über USB. Platine einseitig, leicht zu bestücken. Viele Schnittstellen (1-Wire, I2C, EIA232 ...), D/A-Wandler, Mikrofonschaltung., Audioverstärker ...&lt;br /&gt;
* [https://guloshop.de/shop/Mikrocontroller-Programmierung/::45.html gulostart] – [[Steckbrett|Steckplatinen]]-basiertes Lernpaket / Einsteiger-Set mit ausführlicher Anleitung. Verwendet ausschließlich [http://de.wikipedia.org/wiki/Open_source Open-Source-Software], kann fast alle DIP-ATtiny/ATmega programmieren. Für USB-Schnittstelle.&lt;br /&gt;
* [http://corpsman.de/index.php?doc=atmel/atmegaboard Atmegaboard] Eagle Daten für ein Testboard zur Nutzung 2er Atmegas gleichzeitig. Weitere Adapterplatinen sowie Source Code sind ebenfalls verfügbar.&lt;br /&gt;
* [http://matrixstorm.com/avr/tinyusbboard/ tinyUSBboard] – Ein sehr sehr preiswertes, Arduino und BASCOM kompatibles Board mit onboard USB Interface und [http://matrixstorm.com/avr/tinyusbboard/#firmwaresotherbootloader auswechelbarem Bootloader].&lt;br /&gt;
* [https://www.olimex.com/Products/AVR/ verschiedene Boards von Olimex]&lt;br /&gt;
&lt;br /&gt;
== Projekte ==&lt;br /&gt;
Siehe dazu auch die Artikel in der [[:Kategorie:AVR-Projekte|Kategorie AVR-Projekte]].&lt;br /&gt;
&lt;br /&gt;
* [http://www.electronicsplanet.ch/mikrocontroller/source-code/ATmega8/ATmega8-index.htm 20 C-Code Beispiele für den ATmega8]&lt;br /&gt;
* [[PWM_foxlight]] – LED Lampe mit PWM&lt;br /&gt;
* [[Digitaler Funktionsgenerator]]&lt;br /&gt;
* [[Midi Rekorder mit MMC/SD-Karte]]&lt;br /&gt;
* [[Schrittmotor-Controller (Stepper)]]&lt;br /&gt;
* [[Pulsuhrempfänger mit AVR Butterfly]]&lt;br /&gt;
* [[DCF77-Funkwecker mit AVR]]&lt;br /&gt;
* [[Fahrradcomputer]]&lt;br /&gt;
* [[Einfacher und billiger Webserver mit AtMega32]]&lt;br /&gt;
* [[AVR RFM12]]&lt;br /&gt;
* [[RF SOAP]] USB / AtMega88 / RFM12, optional LiPo Akku mit Lader&lt;br /&gt;
* [http://www.andreadrian.de/schach/#Selbstbau_Schachcomputer_SHAH Selbstbau Schachcomputer SHAH mit ATMega88V]&lt;br /&gt;
* [[Giess-o-mat]] – vollautomatische Blumengießanlage&lt;br /&gt;
* [http://www.zipfelmaus.com/led-flitzer/ POV-LED mit ATmega8, USB und Beschleunigungssensor]&lt;br /&gt;
* [http://g-heinrichs.de/attiny/ ATtiny-Mikrokontroller für Schulbedarf]&lt;br /&gt;
* [http://www.weigu.lu/b Kleine USB-Bibliothek (C, BASCOM und Assembler) für ATMEL-USB-AVRs]&lt;br /&gt;
* [http://volkszaehler.org/ Ein tolles Smartmeter mit kompletter Middleware!]&lt;br /&gt;
* [http://youtu.be/FoUycAYQEzM Snake auf einer LED Matrix]&lt;br /&gt;
* [[AVR_Transistortester]] - Universeller Bauteiletester&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
&lt;br /&gt;
* [[AVR-Tutorial]]&lt;br /&gt;
* [[AVR-GCC-Tutorial]]&lt;br /&gt;
* http://www.avr-asm-tutorial.net&lt;br /&gt;
* http://www.electronicsplanet.ch/mikrocontroller/avr-tutorial-c/avr-tutorial-c.htm Kurzanleitung zum Einrichten des STK500 und dem AVR Studio 4&lt;br /&gt;
* [http://www.weigu.lu/a weigu.lu/a]: Gratis Assembler Kurs (pdf). Mehrere hundert Seiten mit vielen neuen Grafiken. Besonders zum Selbststudium geeignet. Es existiert auch ein [http://www.weigu.lu/b/mices2 Entwicklungsboard] zum Kurs.&lt;br /&gt;
* http://www.avr-modelleisenbahn.de/controller/index.htm Datenbuch ATmega8 und Xmega384 mit Beispielen in Assembler (alles deutsch).&lt;br /&gt;
* http://www.tu-chemnitz.de/~heha/hs/ATmegaX8.chm/ = Datenblatt ATmega48/88/168/328 in deutsch, auch als CHM-Datei herunterladbar und damit offline lesbar&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
 	&lt;br /&gt;
* I.Klöckl AVR - Mikrocontroller. MegaAVR® - Entwicklung, Anwendung und Peripherie ISBN 978-3-11-040768-6 (De Gruyter 2015) [http://www.degruyter.com/view/product/449202 Verlags-Webseite]&lt;br /&gt;
* C.Kühnel Programmieren der AVR RISC Mikrocontroller mit BASCOM-AVR ISBN 3898119378 (2000) ISBN 3907857046 (2.Aufl.2004) ISBN 978-3-907857-14-4 (3. überarbeitete und erweiterte Auflage 2010)&lt;br /&gt;
* R.Mittermayr AVR-RISC: Embedded Software selbst entwickeln Franzis 2008 ISBN 3772341071&lt;br /&gt;
* F.Schäffer AVR: Hardware und C-Programmierung in der Praxis Elektor 2008 ISBN 3895762008 [http://www.blafusel.de/books/avr.html Webseite des Autors, Codebeispiele und Leseprobe]&lt;br /&gt;
* G.Schmitt Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie...Oldenbourg 4.Aufl.2008  ISBN 3486587900 ISBN 3486580167 (2006) ISBN 3486577174 (2005) [http://www.oldenbourg-wissenschaftsverlag.de/olb/de/1.c.1495224.de Verlags-Webseite mit Buchauszügen]&lt;br /&gt;
* M.Schwabl-Schmidt Programmiertechniken für AVR-Mikrocontroller Elektor 2008 ISBN 3895761761 [http://www.schwabl-schmidt.de/index.php/buecher Webseite des Autors]&lt;br /&gt;
* M.Schwabl-Schmidt Systemprogrammierung für AVR-Mikrocontroller Elektor 2009 ISBN 3895762180&lt;br /&gt;
* W.Trampert Messen,Steuern und Regeln mit AVR Mikrocontrollern Franzis 2004 ISBN 3772342981&lt;br /&gt;
* W.Trampert AVR-RISC Mikrocontroller Franzis ISBN 3772354769 (2003) ISBN 3772354742 (2002) ISBN 3772354750 (2000)&lt;br /&gt;
* P.Urbanek Embedded Systems: Ein umfassendes Grundlagenwerk ... (2007) ISBN 3981123018 [http://www.ulb.tu-darmstadt.de/tocs/188146911.pdf Inhaltsverzeichnis]&lt;br /&gt;
* S./F.Volpe AVR-Mikrocontroller-Praxis Elektor 2001 ISBN 3895760633&lt;br /&gt;
* R.Walter AVR-Mikrocontroller-Lehrbuch 3. Auflage Denkholz 2009 ISBN 9783981189445 [http://www.rowalt.de/mc/avr/avrbuch/index.htm Webseite des Autors, Buch-Download in geringer Auflösung]&lt;br /&gt;
&lt;br /&gt;
== Tipps &amp;amp; Hinweise ==&lt;br /&gt;
&lt;br /&gt;
* [[AVR Typen]] – Die verschiedenen Typen (AT90S, ATmega, ATtiny)&lt;br /&gt;
* [[AVR Checkliste]] – Liste mit Hinweisen zur Lösung üblicher Probleme&lt;br /&gt;
* [http://blog.coldtobi.de/1_coldtobis_blog/archive/87_little_endianess_guide_for_atmel_avr.html (Little) Endianess Guide for Atmel AVR] Übersicht über die Endianess der AVR und AVR32&lt;br /&gt;
* [[AVR Fuses|Fuse-Bits]] – Das Setzen der Fuse-Bits ist ein berüchtigter Fallstrick bei den AVRs; vor dem Rumspielen damit unbedingt diese Hinweise lesen!&lt;br /&gt;
* [[AVR In System Programmer]] – Programmierhardware&lt;br /&gt;
* [[Pony-Prog Tutorial]] – Hinweise zur Programmiersoftware PonyProg&lt;br /&gt;
* [[AVRDUDE]] – Programmiersoftware für die Kommandozeile&lt;br /&gt;
* [[AVR-GCC-Codeoptimierung]] – Wie man mehr aus dem Controller herausholen kann, ohne ein Assembler-Guru sein zu muessen.&lt;br /&gt;
* [[AVR Softwarepool]] – Verschiedene Softwaremodule und Codeschnippsel aus der Codesammlung&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
* [http://revision3.com/systm/avr101 AVR101] – systm Videocast von Revision3 Internet Television (engl.).&lt;br /&gt;
&lt;br /&gt;
Weitere Verweise (Links) auf externe Informationen und Projekte finden sich in der &#039;&#039;&#039;[[Linksammlung#AVR|Linksammlung]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Anmerkungen ===&lt;br /&gt;
&amp;lt;!-- Dieser Teil sollte in einen anderen Artikel --&amp;gt;&lt;br /&gt;
Es gibt nur wenige Typen mit D/A-Wandler (z.B. AT90PWM2); hierfür benutze man PWM oder externe Bausteine.&lt;br /&gt;
&lt;br /&gt;
Die Takterzeugung ist bei AVRs recht einfach gehalten. So gibt es bei den meisten Modellen keine internen PLLs um „krumme“ Prozessor- oder Peripherietaktfrequenzen zu erzeugen, noch ist der Peripherie-Takt vom Prozessortakt abkoppelbar. Einige AVR verfügen über eine PLL, um damit z.B. einen Timer mit Frequenzen über der Systemfrequenz zu takten oder höhere Systemfrequenz aus niederfrequenteren Taktquellen zu erzeugen (vgl. u.a. Datenblätter ATtiny85 und ATtiny861). Die Baudrate serieller Schnittstellen lässt sich nicht gebrochen einstellen, so dass gegebenenfalls ein zur Baudrate passender Quarz oder Resonator zu verwenden ist.&lt;br /&gt;
&lt;br /&gt;
Für die serielle Programmierung des Flash-Speichers sind 4 Datenleitungen erforderlich und die Taktversorgung muss sicher gestellt sein. Es ist darauf zu achten, dass bei Einstellung der Taktquelle (Fuses) auch die vorhandene Taktquelle ausgewählt wird. Für die Hochvolt-Programmierung (so genannt wegen 12 V am RESET-Anschluss) werden je nach Chip nur 3 Signalleitungen (kleinere ATtinys) oder sehr viele Leitungen benötigt (ATmegas und große ATtinys). Einige Modelle verfügen über eine Debugwire-Schnittstelle, für die im Betrieb zwei Leitungen ausreichen.&lt;br /&gt;
&lt;br /&gt;
Nicht zu verwechseln ist die 8-bit-AVR-Serie mit AVR32. Letztere ist eine 32-bit-Architektur mit recht viel Ähnlichkeit zu Controllern auf Basis eines ARM-Cores. Controller der ATxmega-Serie verfügen über mehr Funktionen als die &amp;quot;traditionellen&amp;quot; AVR (z.B. DMA- und Eventsystem, 12Bit A-D-Wandler). ATxmega sind jedoch für 3,3V-Betrieb ausgelegt und ausschließlich in SMD-Bauform erhältlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Mikrocontroller]]&lt;br /&gt;
[[Category:AVR| ]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>213.147.188.235</name></author>
	</entry>
</feed>