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.

Slides:



Advertisements
Ähnliche Präsentationen
ALP II: Objektorientierte Programmierung Sommersemester 2006
Advertisements

Imperative Programmierung
Strukturen in C Spelz, Sievers, Bethke.
Objektorientierte Programmierung
Aufgabe: Wie stellt man eine for-Schleife durch eine while-Schleife dar ?
Forschungszentrum caesar
Timm Grams Hochschule Fulda Fachbereich Elektrotechnik und Informationstechnik Rekursive Funktionen in C © Timm Grams, Fulda, (korr.: )
C Tutorium – Fehlerbehandlung – Knut Stolze. 2 Grundsatz Also ist auch nach jedem Funktionsaufruf auf Fehler zu prüfen!! Jeder(!) Funktionsaufruf kann.
Variablen und Datentypen
Interrupts Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts
Imperative Programmierung -Entwicklungswerkzeuge
Objektorientierte Programmierung
SAP R/3 - Speichermanagement
Gliederung des Inhalts
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Dateihandles Um in Perl eine bestimmte Datei zum Lesen, Schreiben oder Anhängen zu öffnen, benötigt man so genannte Dateihandles. Ein Dateihandle ist der.
Datentyp- umwandlung. Literale sind: Bezeichner mit einem festen Wert wie z.B:
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
ARRAY oder FELD oder VEKTOR
Dynamischer Speicher. Ein Vergleich aus dem täglichen Leben...
Dynamischer Speicher und Struktur
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Parameterübergabe von zweidimensionalen Feldern in Funktionen.
Objekte und Arbeitsspeicher
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
ARRAY oder FELD oder VEKTOR
OpenMP Präsentation im Rahmen des Seminars
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Programmieren mit JAVA
Programmieren mit JAVA
Das erste Programm (Folie 16)
Der C-Präprozessor EDV1 - 04Präprozessor.
Einführung in Visual C++
Der C-Präprozessor 08-CPräprozessor.
Wichtige Fachausdrücke in C
Einführung in die Programmiersprache C 1
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Präsentation C Tutorium von Daniel J. Nowak Folie 1 C Tutorium.
Einführung in die Programmiersprache C 4
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Portabilität Seminar aus Softwareentwicklung: Programmierstil Christine Schiestl WS 02 / 03.
1 Ziele Übersicht über Materialien Inhalt der CD Monitor-EPROM Simulation mit dScope Target Debugging mit tScope EXBO.
Programmierung 1. Einführung Seite 1
Informatik II Grundlagen der Programmierung Programmieren in C Programmstrukturen / Kontrollstrukturen Hochschule Fulda – FB ET Sommersemester 2014.
Μ Version 1.0Seite 1µVision Start Debugger Set Breakpoint µVision Debugger.
Informatik II Grundlagen der Programmierung Programmieren in C Benutzerinteraktion / Ein- und Ausgabe Hochschule Fulda – FB ET Sommersemester
DATEISPEICHER in der S P S
Programmieren in C Grundlagen C 2
BMEVIEEA100 Grundlagen der Programmierung
Hochschule Fulda – FB ET Sommersemester 2014
Programmieren in C Grundlagen C 2
1 Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Hacks Daniel Schweighart
Kurzreferat über Funktionen und Prozeduren Von Alexander RothHomepage:
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Telefonieren mit Skype kostenlos weltweit telefonieren Die ersten Schritte.
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
Universität zu Köln WS 2012/13 Seminar: IT-Zertifikat der Phil.-Fak.: Allgemeine Informationstechnologien I Dozentin: Susanne Kurz M.A. Referenten: Irina.
NE2000: Hardware und Design eines Treibers 1 AKBPII: Abschlusspräsentation NE2000: Hardware und Design eines prototypischen Treibers bearbeitet.
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Pointer. Grundsätzliches: Im Arbeitsspeicher werden Daten gespeichert. Um auf die Daten eindeutig zugreifen zu können, werden diesen Daten Adressen zugeordnet.
Funktionen, Felder und Parameter- übergabe. Funktionsaufruf mit Feld als Parameter: Parameter = Name des Feldes.
Pointer. Precompiled Header  Vorübersetzung eingebundener Dateien häufig genutzt, selten geändert  Projekttyp „Win32 Console Application“
Variablen und Operatoren. C++ Teil 2: Grundstrukturen Variablen Operatoren Kontrollstrukturen Funktionen Header-Dateien Pointer und Referenzen.
Strukturen (Eigenschaften) Strukturen dienen zur Zusammenfassung mehrerer Komponenten verschiedener Typen zu einer Einheit, die dann mit gemeinsamen Namen.
Hello World! Javakurs 2013 Arne Kappen
Variable Beim Ausschalten gehen alle in den Variablen gespeicherten Informationen verloren! Zweck: Speichern von Informationen, z. B. Zahlen Modellvorstellung:
Interrupts Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts
Einführung in die Programmierung
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Arrays in C Ein Array ist eine Variable, die aus einer Anzahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
 Präsentation transkript:

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 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 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 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 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 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 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 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 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 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 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 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 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.