Intel Hex Format

Hallo,
ich wollte fragen, ob es genaue Spezifikationen für das
Intel HEX-Format gibt, um "per Hand" zu programmieren.
Das ganze soll dann für den AtMega328 funktionieren.
Gibt es soetwas?

Addi

Addi:
ich wollte fragen, ob es genaue Spezifikationen für das
Intel HEX-Format gibt, um "per Hand" zu programmieren.
Das ganze soll dann für den AtMega328 funktionieren.

Ja, z.B hier: Intel HEX – Wikipedia

Ich bin neugierig! Was verstehst du unter "per Hand" programmieren und wofür soll das gut sein?

genaue Spezifikationen für das Intel HEX-Format

Ja klar, aber mehr als ganz eventuell Datenbereiche zu ändern würde ich nicht empfehlen.
Im Kopf Assembler-Befehle codieren + Prüfsummen rechnen, was soll das bringen ?

Was hat Intel mit dem ATmega zu tun?

Du kannst Assembler im Compiler bzw IDE in den Sketch einfügen.

Siehe zb

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment#Fertige_Evaluations-Boards_und_Starterkits
Grüße Uwe

voithian:
Ich bin neugierig! Was verstehst du unter "per Hand" programmieren und wofür soll das gut sein?

Ich würde gerne ein Programm schreiben, welches mir Code für den Arduino
erzeugt, ohne die IDE bzw. fertige Programme zu nutzen. Soll eine kleine
Übung zum PC-Programmieren für mich sein und ich würde gerne Versuchen,
eine eigene Programmiersprache zu entwerfen, welche evtl. auch über das
Internet compilieren kann, ohne Software installiert zu haben.
Edit: Die IDE erzeugt eine *.hex Datei, die mit avrdude auf dem Arduino geladen
werden kann. Intel hatte früher die Spezifikationen für die Datei festgelegt, daher Intel Hex.

Addi

Addi:
Ich würde gerne ein Programm schreiben, welches mir Code für den Arduino
erzeugt, ohne die IDE bzw. fertige Programme zu nutzen. Soll eine kleine
Übung zum PC-Programmieren für mich sein und ich würde gerne Versuchen,
eine eigene Programmiersprache zu entwerfen, welche evtl. auch über das
Internet compilieren kann, ohne Software installiert zu haben.

OK, dafür kann es Sinn machen. Kleine Frage: Im wievielten Semester des Informatikstudiums hat man die Vorlesungen über Compilerbau? :wink: :wink: :wink:

Wenn du noch keine weiteren Informationen hast, hier vielleicht etwas für den Einstieg: http://vhb.fh-regensburg.de/co/

Kleine Frage: Im wievielten Semester des Informatikstudiums hat man die Vorlesungen über Compilerbau?

Hochschule Osnabrück:

  • Studiengang: Master -> INFORMATIK - VERTEILTE UND MOBILE ANWENDUNGEN
  • Wahlfach ab dem zweiten Semester: (link ist nicht Forum geeignet, da der Syntax falsch erkannt wird, die folgende URL kann man nur kopieren)
http://www.ecs.hs-osnabrueck.de/18830.html?&tx_fhosmoppsshow_pi1[uid]=67183

Vorraussetzungen:

  • Abgeschlossenes Studium in Informatik, Technische Informatik, Mechatronik, Elektrotechnik

Um sich selbst einen Compiler zu bauen muss man sehr viel wissen haben, es ist nicht unbedingt einfach. Aber wenn einen das Interessiert :wink: nur zu.

PS:
Der heutige Ansatz (der Weiterentwicklung von Programmiersprachen) führt immer mehr dazu, dass grafische Oberflächen verwendet werden, in denen nur noch Bausteine existieren.
Aus diesen Grafischen Konstrukten wird der Quellcode einschließlich UML Darstellung der Klassen generiert.

Jomelo:
Um sich selbst einen Compiler zu bauen muss man sehr viel wissen haben, es ist nicht unbedingt einfach. Aber wenn einen das Interessiert :wink: nur zu.

Bei Arduinos liegt der Vorteil darin, dass nur eine Textdatei für avrdude erzeugt werden muss,
und kein Nativer Code wie bei einem "echten" Compiler, z.B. gcc.

Addi

Addi:
Bei Arduinos liegt der Vorteil darin, dass nur eine Textdatei für avrdude erzeugt werden muss,
und kein Nativer Code wie bei einem "echten" Compiler, z.B. gcc.

Die Datei im Intel-Hex Format, die über avrdude in den Controller geflasht wird, ist zwar eine ASCII-Datei aber nichtsdestotrotz enthält sie die einzelnen AVR-Maschinenbefehle für dein Programm (nur eben nicht als Binärdaten, sondern als ASCII-Zeichen mit ein wenig "Drumherum" wie Checksumme, Speicheradresse im Flash, usw.).

Und diese Maschinenbefehle müssen erst einmal sinnvoll aus der "eigenen" Programmiersprache erzeugt werden. Da kommt man nicht drumherum. Dagegen ist der Intel-Hex-Kram nur "Peanuts".