myavr.CHKRonline.de

Informationen und Projekte Rund um die Mikrocontroller-Programmierung
von myAVR (ATmega8), STM32 (Cortex-M3/4) und Raspberry Pi (ARM11)

Der Autor

Christian KrügerChristian Krüger, ursprünglich aus dem Altenburger Land stammend, wohnt heute in Nürnberg. Nach seinem Studium der Informations­technik an der West­sächsischen Hochschule in Zwickau, ist er heute Software Entwickler für ein­gebettete Systeme. Seine Berufung fand er im Dienst für seine Kollegen als Teamleiter bei ISCUE.

Die größte Leidenschaft Christians ist es, die Schönheit unserer Welt einzufangen und weiter­zuerzählen. Dies gelingt ihm mit Hilfe seiner Kamera. Seine Fotos und Videos sind auf Instagram und seiner Webseite zu betrachten.

Für seine Zukunft freut sich Christian auf erinnerungs­würdige Reisen, begeisterungs­fähige Menschen und viele neue Erfahrungen.

CHKRonline.de

Facebook Profil

Twitter Profil

XING Profil

Meine myAVR Treiber

EEPROM Treiber

Der ATmega Microcontroller enthält neben dem Flash-Speicher für das auszuführende Programm und dem SRAM als Arbeitsspeicher noch einige Byte EEPROM. Dieser lässt sich als persistenter Speicher für Log- oder Konfigurations-Daten verwenden. Die Größe des EEPROMs ist abhängig von dem verwendeten Prozessor.

Prozessor SRAM Flash EEPROM
ATmega8 1KB 8KB 0,5KB
ATmega328P 2KB 32KB 1KB

Der Zugriff auf den EEPROM ist nicht so einfach möglich, wie es bei SRAM oder Registern der Fall ist. Daher ist die Umsetzung einiger kleiner Funktionen notwendig. Diese Bibliothek enthält alle nötigen Funktionen, um den EEPROM byteweise zu bearbeiten. Sie sollte sich mit allen gängigen ATmega Microcontrollern verwenden lassen, wurde jedoch nur auf dem ATmega8 getestet.

Lizenz

Dieses Programm ist freie Software. Du kannst es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder (nach deiner Option) jeder späteren Version.

Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, dass es dir von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Details findest du in der GNU General Public License.

Die Lizenzvereinbarung stehen folgend zur Verfügung: GPL 3.0 Lizenz

Die zur Kompilierung nötigen und damit in die Hex-Datei eingeflossenen Bibliotheken umfassen Teile der AVR Libc. Diese steht unter einer modifizierten Version der BSD Lizenz zur Verfügung. Genaue Informationen zu den einzelnen Lizenzen sind den eingeflossenen Bibliotheken zu entnehmen und lassen sich hier nachlesen: AVR Libc Lizenz

Kompilierung

Der Treiber liegt in Form einer statischen Bibliothek vor. Diese kann einfach zusammen mit einem ausführbaren Programm gelinkt werden. Dazu sind der Header der Bibliothek als auch die Bibliothek selbst notwendig. Neben der Bibliothek liegt ein Testprogramm vor, welches den EEPROM mit einem definierten Muster beschreibt. Dieses lässt sich z.B. über einen Programmer auslesen.

Die Bibliothek wurde mit Hilfe des myAVR Workpad Plus und AVR-Eclipse entwickelt. Sie sollte sich in einem Hauptprogramm mit Hilfe des myAVR Workpad SE bzw. Plus oder AVR-Ecplise jederzeit kompilieren und auf ein myAVR Board MK2 USB transferieren lassen. Bei der Nutzung des myAVR Workpad ist dazu die Angabe der Bibliothek in den Datei-Kommentaren notwendig:

// LinkerOption   : -v -L"PATH_TO_EEPROM_LIBRARY" -lEEPROMDriver

Unter Eclipse ist die Definition des Symbols __ECLIPSE__ für eine korrekte Kompilierung notwendig, außerdem müssen die Pfäde zu der Bibliothek in den Projekt-Eigenschaften hinterlegt werden. Siehe dazu auch das AVR-Eclipse Tutorial Seite 3.

Die Kompilierung der Bibliothek selbst ohne Hauptprogramm ist lediglich mit AVR-Eclipse vorgesehen. Das myAVR Workpad bietet keine mir bekannte Möglichkeit, eine Bibliothek zu kompilieren.

Bei Fragen oder Anregungen stehe ich gerne zur Verfügung: chkr1989@chkronline.de

Changelog

Test Version 1.3

Version 1.2

Version 1.1

Version 1.0

Bibliothek ATmega8 @ 3,6864 MHz

Testprogramm ATmega8 @ 3,6864 MHz

Lizenzinformationen