8051 Softwaretools

F├╝r die 8051-Familie gibt es eine Vielzahl von Entwicklungstools und Programmiersprachen. Leider sind viele der professionellen Tools, wie z.B. C-Compiler ziemlich teuer. Allerdings gibt es auch eine Menge Freeware-, Shareware und Low-Cost-Software mit der man sehr gut arbeiten kann.

Mit welcher Programmiersprache der Controller programmiert wird ist prinzipiell egal, denn im Gegensatz zur Programmierung f├╝r z.B. Windows muss man sich immer direkt mit der Hardware auseinandersetzen. Dabei bieten Hochsprachen, wie C oder Pascal, einen h├Âheren Komfort und eine bessere Lesbarkeit des Sourcecodes. Daf├╝r ist die Geschwindigkeit des erzeugten Programmcodes geringer als von Hand optimierter Assemblercode. Die Geschwindigkeit des erzeugten Codes ist allerdings auch sehr von dem verwendeten Entwicklungssystem abh├Ąngig.

Um die Konfiguration der einzelnen Hardware-Komponenten des SAB80C535 zu vereinfachen hat die Firma Infineon ein kostenloses Tool mit dem Namen “DAvE” angeboten. Mit diesem Tools k├Ânnen viele Siemens/Infineon Mikrocontroller einfach am Bildschirm konfiguriert werden. Aus den Konfigurationsdaten wird dann ein Programmger├╝st in C erstellt, das dann bereits alle Funktionen zur Initialisierung und Benutzung der Controller internen Hardware enth├Ąlt. Dieses Tool eignet sich ├╝brigens nicht nur f├╝r C-Programmierer, sondern erleichtert auch bei der Assemblerprogrammierung die richtige Initialisierung der Hardware.

Um den SAB80C535 in Assembler zu programmieren ist der AS-Crossassembler sehr gut geeignet. Dieser Assembler ist als Freeware auf diversen FTP-Servern zu finden. Bei diesem Controller handelt es sich um einen Macro-Assembler, der nicht nur die 8051-Familie unterst├╝tzt. Mit diesem Assembler kann man vom PIC bis zum 68000┬┤er eigentlich alles programmieren ohne den Assembler zu wechseln und sich an eine neue Syntax zu gew├Âhnen.

Wem die Assembler-Programmierung zu kompliziert ist und lieber in einer Hochsprache arbeitet, f├╝r den konnte ich den C-Compiler von Dave Dunfield empfehlen. Der Compiler war relativ g├╝nstig (um die 100$ ) , flexibel und erzeugt relativ kleinen und schnellen Code. Allerdings unterst├╝tzt der Compiler nicht den vollen ANSI-Standard. Z.B. wurden die Datentypen Long/ Double / Float /Enum nicht unterst├╝tzt und auch Structs sind nicht vollst├Ąndig implementiert. Au├čerdem war die mitgelieferte IDE vom Bedienungskomfort nicht mehr zeitgem├Ą├č, sie arbeitet unter DOS und ist nur mit der Tastatur zu bedienen.

Die C-Libs werden als Source-Code mitgeliefert, so das man jederzeit die C-Funktionen erweitern oder auch f├╝r andere 8051-kompatibelen Mikrocontroller anpassen kann. Die mitgelieferte Library unterst├╝tzt einen “normalen” 8051-Controller. Die SFR’s um die speziellen Funktionen von anderen 8051-kompatibelen Controllern benutzten zu k├Ânnen muss man selbst in die Library einarbeiten. Mehr Informationen zu dem C-Compiler findet man auf der Web-Page von Dunfield Development Systems.

Ein anderer kosteng├╝nstiger C-Compiler f├╝r die 8051-Familie war der ┬ÁC/51 von der Firma Wickenh├Ąuser. Dieser Compiler kostete in der Vollversion 116,-ÔéČ. Au├čerdem gabt es eine auf 8kB limitierte Demoversion, die man auf der Website downloaden konnte. Mit der Demoversion dieses Compilers habe ich ein bisschen gespielt und er funktioniert soweit ganz gut. Die mitgelieferte IDE besteht aus zwei Teilen. Einem Editor f├╝r die Sourcen und einem Build-Programm, das ├╝ber eine Make-Datei gesteuert wird. Inzwischen ist der Compiler wohl nicht mehr erh├Ąltlich.

Daf├╝r gibt es inzwischen auch einen Freeware C-Compiler f├╝r die 8051-Familie, mit dem ich allerdings noch nicht gearbeitet habe. Wie gut der SDCC-Compiler ist, wei├č ich nicht.

Ein g├╝nstiger Pascal-Compiler war der Pascal-Cross-Compiler (Nili-Pascal) aus dem Elektor-Verlag (ISBN 3-89576-061-7). Der Compiler war als eine Art “Bookware” zum Preis von 74,50 Euro erh├Ąltlich. Teilweise bekommt man das Buch noch als Gebrauchtkauf. Der Compiler besteht eigentlich aus einer kompletten Entwicklungsumgebung mit Editor, Compiler und Terminalprogramm zum direkten Downloaden des erzeugten Codes. (In der ersten Auflage, die ich besitze, sind dieses alles DOS-Programme. Ich weiss nicht, ob sich das inzwischen ge├Ąndert hat.) Au├čerdem wird ein fertiger Bootstraploader mitgeliefert, den man prinzipiell nur noch auf ein EPROM brennen muss. Es ist ├╝brigens auch eine Bauanleitung in dem Buch f├╝r ein 80C535-Board.

Um das erzeugte Programm sp├Ąter dann auf dem Mikrocontrollerboard laufen zu lassen gibt es zwei M├Âglichkeiten: Entweder programmiert man mit dem Programm einen EPROM oder man l├Ądt das Programm einfach ├╝ber die serielle Schnittstelle in das RAM des Mikrocontrollerboards. Wie man sich sicher vorstellen kann, ist die zweite Methode w├Ąhrend der Entwicklungsphase etwas bequemer. Deshalb habe ich ein Monitorprogramm, das ich irgendwo im Internet gefunden habe, f├╝r den SAB80C535 und die Adressierung des Boards modifiziert. Das Monitorprogramm ist in der Lage HEX-Files in den Mikrocontroller zu laden, den Inhalt von Speicherzellen anzuzeigen usw… Allerdings unterst├╝tzt der Monitor nur die ├ťbertragung der Daten ├╝ber den RS-232 Schnittstellenbaustein. F├╝r die ├ťbertragung der Daten ├╝ber den RS-485 Baustein m├╝sste man das ├ťbertragungsprotokoll f├╝r den Halbduplex-Betrieb erweitern. Diese Arbeit habe ich mir gespart, weil die meisten PC’s sowieso keinen RS485-Anschuss besitzen. Das Monitorprogramm kann hier als ZIP-Archiv gezogen werden.

F├╝r Assemblerprogrammierer befindet sich noch noch ein Beispielprogramm zur Initialisierung und Ansteuerung des LC-Displays als Source-Code auf der Seite der RS232-Version. Das Programm kann auf dem AS-Crossassembler assembliert werden.

Wer noch fragen hat, wem noch Fehler aufgefallen sind oder ein paar Ideen hat kann ja mal eine Mail an mich schicken.