Hallo! ich habe begonnen, mich mit der Programmierung von Mikrocontrollern in Assembler ("bare") auseinanderzusetzen. Ich bin in der Lage, bereits in der Arduino-IDE kompilierte .hex-Dateien mittels avrdude auf den Arduino Nano (ATmega328p) zu flashen. Ich weiß jedoch nicht, wie ich .asm-Dateien insofern kompilieren kann, dass diese mit dem Bootloader des Arduinos harmonieren bzw. welche anderen Parameter gesetzt werden müssen. Den Kompilierungsbefehl aus der IDE (avr-g++) habe ich bereits analysiert, einige (eventuell essentielle) Parameter werden in der unter avr-g++ aber nicht aufgeführt. Ich verfüge über die Programme avr-as und avra, würde avr-as aber prinzipiell bevorzugen. Alle Aktionen werden auf einem ubuntubasierten Linux-System ausgeführt. Welche Parameter muss ich nutzen, um das Assemblerprogramm mittels avr-as zu kompilieren? Vielen Dank!
Ich würde dir empfehlen dieses hier: https://onlinedocs.microchip.com/pr/GUID-E06F3258-483F-4A7B-B1F8-69933E029363-en-US-2/index.html zu benutzen. Das resultierende HEX kannst du dann mit AVRDUDE in den Controller flashen.
Welche Parameter muss ich nutzen, um das Assemblerprogramm mittels avr-as zu kompilieren?
Am einfachsten verwendet man avr-gcc zum assemblieren. Falls die Dateiendung weder .sx noch .S ist, dann
1 |
|
Das linkt gegen den Startup-Code der AVR-LibC. Falls du den selbst schreiben willst, dann noch -nostartfiles.
Werden mehrere Module verwendet, kann man die einzeln zu *.o assemblieren und dann linken. Oder alle in einem Rutsch angeben; so wie oben, nur mit mehreren Quellen (auch C und C++ wenn man will).
avrdude verdaut auch ELF, man brauch nicht extra ein HEX zu erstellen.
Vielen Dank, ich habe es vollbracht.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.