- Weitere
Include Files für den AVRPas Compiler
(letztes Update: 02.07.2010) - Weitere Include Files für den AVRPas Compiler Ich arbeite immer noch mit den kleinen AVR Controllern, wenn mich jemand mit genügend Geld zwingt ;-) Nachfolgend meine letzten Include Dateien: ATtiny24, ATtiny44, ATtiny84 und ATMega1281. Hier sind die Include Files
für ATMega48, ATMega88,
ATMega168, ATMega169,
ATMega644 und ATMega644P
Controller. Wenn ich an AVR-Projekten arbeite, verwende ich immer noch
den Embedded Pascal Compiler AVRPas für AVR. Es ist wirklich traurig,
daß Rainier Lamers sich nicht mehr um den Compiler kümmert
(letzter Bugfix in 2003) . - ATMega8535 Include File für den AVRPas Compiler Zur Zeit arbeite ich an einem Projekt, bei dem ich den ATMega8535 verwende. Hier ist das dazugehörige Include File für den Controller. Das File liegt der Compiler Version 2.11 nicht bei. - AVRPas Compiler erzeugt fehlerhafte HEX-Dateien Der Compiler erzeugt in einigen
Fällen fehlerhafte HEX-Dateien. Ich habe die Compiler Versionen
2.0, 2.1 und 2.11 mit diesem Projekt überprüft.
Um das Problem zu umgehen, habe ich ein Tool geschrieben, welches eine
HEX-Datei mit der korrespondierenden ROM-Datei vergleicht und die HEX-Datei
dann gegebenenfalls korrigiert. CheckHex steht auf Anforderung
zur Verfügung. - StripIncFile für den AVRPas Compiler Dies ist ein "quick and dirty Hack" um eine interne Limitierung im Embedded Pascal Compiler AVRPas von Rainier Lamers (http://users.iafrica.com/r/ra/rainier/) zu umgehen. Eines meiner Projekte mit ca. 5000 Zeilen Code ließ sich nicht mehr mit der aktuellen Version 2.11 vom März 2003 compilieren. Der Compiler stoppte mit der Fehlermeldung "Too many labels". Nachdem ich das Problem im April gemeldet hatte, versprach mir Rainier die "Label-Grenze" in einer neuen Compiler Version zu erhöhen. Dies passierte nicht (wir haben nun September 2003). Die Fertigstellung des Projektes war sehr stark gefährdet. Für die Portierung des Codes nach "C" reichte die Zeit nicht aus. Nachdem ich festgestellt hatte, daß sich mein Code für den Mega103 compilieren ließ, für den Mega128 (welchen ich verwendete) aber nicht, war klar, daß hier ein Zusammenhang mit der Anzahl der verwendeten Symbole bestehen mußte. Ich löschte dann unbenutzte Symbole "von Hand" aus der Include Datei für den Mega128 und konnte dann schließlich das gesamte Projekt compilieren. So habe ich dann dieses Tool geschrieben, welches den geschilderten Prozess automatisiert. StripIncFile.exe gibt es auf Anforderung. Ich arbeite mit AVRPas seit 2000 und habe seitdem über 20 AVR-Projekte damit realisiert. Wenn ich Bugs gefunden habe, dann habe ich sie Rainier gemeldet und er hat sie in angemessener Zeit behoben. Trotz alledem bin ich der Meinung, daß AVRPas der beste Embedded Pascal Compiler für die AVRs ist. Es ist überflüssig zu sagen, daß ich mit der gegenwärtigen Situation überhaupt nicht zufrieden bin.
Nach Durchsicht des aktuellen Errata Sheets für den AT90S8515 auf der ATMEL-Site (http://www.atmel.com/atmel/acrobat/doc1195.pdf) fiel mir der "Skip Instructions with Interrupts"-Fehler auf. Dieser Fehler kann auftreten, wenn eine bestimmte Befehlsfolge "zu einem ungünstigen Zeitpunkt" durch einen Interrupt unterbrochen wird. Eine Anwendung, die von diesem Fehler betroffen ist, ist extrem schwer zu debuggen. Da ich sicherstellen wollte, daß mein Code diese Befehlsfolgen nicht enthält (auf Aussagen von Compiler-Herstellern wollte ich mich nicht verlassen), habe ich Chk8515 geschrieben. Mit diesem Win32-Konsolen-Tool kann AT90S8515-code analysiert werden. Sollten kritische Programmabschnitte vorhanden sein, werden diese angezeigt. Chk8515 ist Freeware und kann hier heruntergeladen werden (24 KB). Versionshistorie:
-
GoISP
Version 0.55 - DCF77-Steuerung für einen Handtuchtrockner Dies war mein allererstes AVR-Hardware-Projekt in 1999: Für den Einstieg habe ich mal eine Anwendung realisiert, die nicht ganz so bierernst zu nehmen ist. Der besagte Handtuchtrockner ist als separater Heizkörper ausgeführt, der mit dem Wasserkreislauf der Zentralheizung verbunden ist. Im Sommer kann der Trockner/Heizkörper über einen Heizstab (1300 Watt) aufgeheizt werden.
In der Zwischenzeit habe ich mehr als 30 (kommerzielle) AVR Projekte umgesetzt. Dabei kamen folgende CPUs zum Einsatz: AT90S2343, AT90S2313, AT90S4433, AT90S8515, AT90S8535, ATMEGA8, ATMEGA163, ATMEGA32, ATMEGA103, ATMEGA128, ATMEGA48, ATMEGA88, ATMEGA168, ATMEGA169, ATMEGA644(P), ATtiny44 und ATMega1281. Einige dieser Projekte sind hier vorgestellt.
|