Wolfram Quehl wrote:
> Nicht in C sondern in assembler programmieren. Evtl. kann man sich auch
> den übersetzten C Code in Assembler ansehen und darin was ändern und
> anschließend mit dem Assembler übersetzen.
> Statt mega16 den mega32 oder mega644 verwenden.
>
> mfg
Da hat mal wieder jemand nicht verstanden, was das Problem ist:
Eine (Intel-)Hex-Datei enthält einen "Overhead", damit das
Programmier-Werkzeug weiß, an welche Adresse es welche Daten schreiben
soll.
Zwecks Überprüfung der Richtigkeit der Daten ist auch noch eine
Prüfsumme beigefügt.
Damit man als Mensch die Datei auch noch lesen kann, sind die einzelnen
Byte auch noch als ASCII-Zeichen aufgeführt, was schon mal dazu führt,
dass der Quellcode schon mal doppelt so lang ist, wie sie als Binärdatei
wäre.
http://www.roboternetz.de/wissen/index.php/HEX-Datei
Es hat überhaupt nichts damit zu tun, wie das Programm erstellt wurde.
Selbst ein Assembler erzeugt HEX-Dateien, wenn er das Programm
assembliert.
Der einzige Unterschied zwischen Assemler und einer Hochsprache ist,
dass der Compiler und der Rest der Werkzeugkette dem Programmierer
"lästige" Tätigkeiten wie Register-auf-Stack-Rettung, Beschreiben der
Interrupt-Vektor-Tabelle etc., sowie kompliziertere Berechnungen
abnimmt.
Der Vergleich zwischen Assembler (eigentlich auch eine Hochsprache im
Gegensatz zum manuellen programmieren eines Controllers mit Hilfe von
Schaltern und Tastern...) und einer Hochsprache ist also völlig
sinnfrei.
Assembler kann man bis zu einer gewissen Projektgrösse (auch die Anzahl
der mitarbeitenden zählt) benutzen. Ab einer bstimmten Grösse verliert
man den Überblick.
Mir fällt da immer das allseits beliebte Zitat von Dieter Nuhr ein...