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.
Leonardo schrieb: > 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 | avr-gcc -x assembler-with-cpp datei.xxx -mmcu=atmega328 -o datei.elf |
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.