Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Welche Maßnahmen muss man treffen, um sowohl unter BORLAND als auch unter KEIL kompilieren zu können? Eliminieren der zusätzlichen Schlüsselwörter Programmieren.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Welche Maßnahmen muss man treffen, um sowohl unter BORLAND als auch unter KEIL kompilieren zu können? Eliminieren der zusätzlichen Schlüsselwörter Programmieren."—  Präsentation transkript:

1 1 Welche Maßnahmen muss man treffen, um sowohl unter BORLAND als auch unter KEIL kompilieren zu können? Eliminieren der zusätzlichen Schlüsselwörter Programmieren von intrinsic-Funktionen sfr->char, sfr16->integer Rest: #ifdef __BORLANDC__ #ifdef __C51__ Geeignet für höherwertige, anwendungsnahe Programmteile

2 2 Wie wirkt sich die Wahl eines Compiler- Modells aus? Datentypen, die nicht explizit einem Speicherbereich zugewiesen sind, werden entsprechend dem Modell angelegt. SMALLdata128 (all incl.) COMPACTpdata256 LARGExdata64 k

3 3 Was muss man bei Interruptprogrammierung beachten? Die Interrupt-Routine ist kurz, ohne Schleifen. Sie kommuniziert mit dem Hauptprogramm über Globale Variable Will man PUSH-POS-Sequenzen vermeiden, sollte man USING verwenden Der Aufruf von Funktionen ist nur bedingt möglich. Man muss darauf achten, dass die Funktionen reentrant sind.

4 4 Warum gibt es Funktionen mit einem Unterstrich? Beim Compilieren stellt der Compiler einem Variablen- oder Funktionsnamen einen Unterstrich voran, um die C-Funktionen von sonstigen Assembler-Funktionen unterscheiden zu können C++-Compiler benutzen auch einen Doppelunterstrich für das Name-Mangling Bei der Benennung von Variablen und Funktionen sollte man jeweils nur einen Unterstrich verwenden und den nicht am Beginn des Namens

5 5 Wie spricht man Hardware an, die im externen Speicher dekodiert ist? Definition unsigned char xdata *hardw ; hardw=(unsigned char xdata *)0xFF02; Lesen printf("%c",*hardw); Schreiben *hardw=5;

6 6 Gibt es Grundregeln für C am 51er- Mikrocontroller? Das Hauptprogramm endet mit einer Endlosschleife (Ausnahme: Echtzeitkern) Bei der Festlegung der Variablen für Zahlen ist immer char vorzuziehen. (dann int, long, float in dieser Reihenfolge)

7 7 Ein SFR wird vom Compiler nicht unterstützt! Es fehlt nur der Eintrag in der Header-Datei reg81xxx.h. Man fürgt diesen Eintrag in der eigenen Datei oder in der Header-Datei ein Byte sfr P9 = 0xF7; Bit sbit CY=PSW^7;

8 8 Die Funktionen printf(), scanf() funktionieren nicht! Man muss definieren, was Ein- und Ausgabekanäle sind (COM- Schnittstelle, Tastatur/LCD-Display) Man muss die 2 Funktionen putchar() und _getkey() dafür schreiben Man muss die serielle Schnittstelle initialisieren

9 9 Welche Funktionen sind reentrant? Funktionen, die mit dem zusätzlichen Schlüsselwort reentrant versehen sind Verschiedene niederwertige Bibliotheksfunktionen (Liste siehe Handbuch) Sie legen die Übergabeparameter am Stack an C51-C legt Übergabeparameter wegen der höheren Ablaufgeschwindigkeit auf absolute Adressen. Asynchron gestartete Interruptroutinen würden Variablen überschreiben, daher müssen alle diese Funktionen zur Parameterübergabe am Stack gezwungen werden

10 10 Ich möchte ein Assemblerprogramm einbinden! Brauchen Sie das wirklich? Entwickler von Compilern beschäftigen sich überwiegend mit der Optimierung von Assemblerkode. Vielleicht haben Sie nur ein paar Gesichtspunkte außer Acht gelassen?

11 11 Ich vermisse die Rotate-Befehle aus dem Assembler-Befehlssatz! Die Sprache C kennt diese Befehle tatsächlich nicht. Man verwendet die instrinsic-Funktionen aus der C- Bibliothek _crol_(), _irol_(), _lrol_(), _cror_(), _iror_(), _lror_()

12 12 Wie erfolgt die Verbindung eines Target- Systems zum PC? Voraussetzungen 1. Verbindung der seriellen Schnittstelle PC z.B. COM 2 µC-System an COM1 (COM 0 bleibt frei) 2. Ist die Verbindung ausgekreuzt? (Voltmeter, Schnittstellentester)

13 13 Testen des Monitor-Programms Start von MON51 am PC C:\>MON51 COM2 BAUDRATE (9600) *** Monitor Mode *** # Testmöglichkeiten : # HELP #DC 0,FF #EX 8000 Der gewünschte Modus ist "Monitor Mode". Es kann auch vorkommen, dass sich der Monitor-Modus meldet aber nicht wirklich eingeschaltet ist. Wenn sich der "Terminal Mode" meldet, muss man den Fehler bei der seriellen Schnittstelle und am Target- System suchen. Der gewünschte Modus ist "Monitor Mode". Es kann auch vorkommen, dass sich der Monitor-Modus meldet aber nicht wirklich eingeschaltet ist. Wenn sich der "Terminal Mode" meldet, muss man den Fehler bei der seriellen Schnittstelle und am Target- System suchen.


Herunterladen ppt "1 Welche Maßnahmen muss man treffen, um sowohl unter BORLAND als auch unter KEIL kompilieren zu können? Eliminieren der zusätzlichen Schlüsselwörter Programmieren."

Ähnliche Präsentationen


Google-Anzeigen