Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Laderegler Test Tueftler Seite

K
(Gegenüberstellung Assembler und Hochsprache: Diskussionsergebnisse)
Zeile 13: Zeile 13:
 
  | <!--------------------- - 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
 
* 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, fehleranfällig, schwer zu debuggen und nachzuvollziehen
+
* aufwändig in der Entwicklung
 
  |- valign="top"
 
  |- valign="top"
 
  | '''Hochsprache'''
 
  | '''Hochsprache'''
Zeile 20: Zeile 21:
 
* gute Portierbarkeit  
 
* gute Portierbarkeit  
 
* schnelle Entwicklung
 
* schnelle Entwicklung
* weniger fehlerabfällig, bessere Fehlersuche
+
* der Compiler kann bekannte Hardware-Bugs umschiffen
* beim Upgrade auf eine neue Compiler-Version mit besserten Optimierunsstrategien hat man die Optimierungen, ohne die Quelle ändern zu müssen
+
* beim Upgrade auf eine neue Compiler-Version mit besseren Optimierungsstrategien hat man die Optimierungen, ohne die Quelle ändern zu müssen
 
  | <!--------------------- - Hochsprache -->
 
  | <!--------------------- - Hochsprache -->
 
* ineffizienterer Code
 
* ineffizienterer Code
 
* Unsicherheit, wie der Code genau aussieht
 
* 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.
 
  |- valign="top"
 
  |- valign="top"
 
  | '''Intermix''' Hochsprache&nbsp;+&nbsp;Assembler'''
 
  | '''Intermix''' Hochsprache&nbsp;+&nbsp;Assembler'''
Zeile 37: Zeile 39:
 
* es sind zwei Sprachen zu beherrschen
 
* es sind zwei Sprachen zu beherrschen
 
* Objektformat bzw. Compiler und Assembler müssen zueinander passen
 
* 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.
 
  |}
 
  |}
  
 
[[Kategorie:Software]]
 
[[Kategorie:Software]]

Version vom 9. Dezember 2005, 16:48 Uhr


Gegenüberstellung Assembler und 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
  • bein Umstieg auf eine andere Architektur muss zuerst ein anderen Assembler-Code erlernt werden
  • sogar Portierung innerhalb der gleichen Controllerfamilie (z.B. AVR) erfordert Anpassungen wegen unterschiedlichem Befehlssätze
  • aufwändig in der Entwicklung
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.

LiFePO4 Speicher Test