|
|
Zeile 12: |
Zeile 12: |
| | <!--------------------- - Assembler --> | | | <!--------------------- - Assembler --> |
| * komplette Neuimplementierung bei Portierung auf eine andere Architektur | | * komplette Neuimplementierung bei Portierung auf eine andere Architektur |
− | * bein Umstieg auf eine andere Architektur muss zuerst ein anderen Assembler-Code erlernt werden | + | * bei Umstieg auf eine andere Architektur muss zuerst ein anderer Assembler-Code erlernt werden |
| * sogar Portierung innerhalb der gleichen Controllerfamilie (z.B. AVR) erfordert Anpassungen wegen unterschiedlichem Befehlssätze | | * sogar Portierung innerhalb der gleichen Controllerfamilie (z.B. AVR) erfordert Anpassungen wegen unterschiedlichem Befehlssätze |
| * aufwändig in der Entwicklung | | * aufwändig in der Entwicklung |
| + | * Wartung ist schwierig, denn Code wird leicht unübersichtlich |
| |- valign="top" | | |- valign="top" |
| | '''Hochsprache''' | | | '''Hochsprache''' |
Quellcode
|
Vorteile
|
Nachteile
|
Assembler
|
- Prinzipiell der schnellste bzw kürzeste Code, weil man volle Kontrolle über die Maschine hat
|
- komplette Neuimplementierung bei Portierung auf eine andere Architektur
- bei Umstieg auf eine andere Architektur muss zuerst ein anderer Assembler-Code erlernt werden
- sogar Portierung innerhalb der gleichen Controllerfamilie (z.B. AVR) erfordert Anpassungen wegen unterschiedlichem Befehlssätze
- aufwändig in der Entwicklung
- Wartung ist schwierig, denn Code wird leicht unübersichtlich
|
Hochsprache
|
- gute Portierbarkeit
- schnelle Entwicklung
- der Compiler kann bekannte Hardware-Bugs umschiffen
- beim Upgrade auf eine neue Compiler-Version mit besseren Optimierungsstrategien hat man die Optimierungen, ohne die Quelle ändern zu müssen
|
- ineffizienterer Code
- Unsicherheit, wie der Code genau aussieht
- Compiler sind oft wesentlich komplexer aufgebaut als Assembler, was die Wahrscheinlichkeit von Fehlern im Compiler im Vergleich zu einem Assembler erhöht.
|
Intermix Hochsprache + Assembler
|
- Vorteile von Hochsprache und Assembler
- nur die Assembler Module/Schnippsel sind schwer portierbar
- Assembler kann ganz zielgerichtet an kritischen Stellen eingesetzt werden
- Quellcode bleibt gut lesbar
|
- Nachteile von Hochsprache und Assembler
- die Konvention der Hochsprache muss genau befolgt werden (Registerverwendung bei Funktionsaufrufen, etc.)
- es sind zwei Sprachen zu beherrschen
- Objektformat bzw. Compiler und Assembler müssen zueinander passen
- Je nach verwendeter Mix-Technik (Inline Assembler, Link mehrerer Objekte, dynamisch linkender Bootloader) sind noch zusätzliche Kenntnisse erforderlich.
|