• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

Assembler-Progr. für 8Bit µContr. Atmel Mega 328p

Vril

Well-Known Member
Themenstarter #1
Hallo,

hier kommt keine Frage und kein Problem - sondern ich möchte nur Meinungen
zur Vorgehensweise, Denkfehlern etc. einholen.

da unsere
Elektriker nur noch Windows kennen - und um ne LED mit nen µC zum blinken zu bringen,
mindestens Eclipse, Netbeans oder Atmel-Studio brauchen ...

wollte ich es mal anders probieren und auch zeigen:

Assembler statt C und auch statt C mit Inline Assembler deshalb:
weil es einfach spannend ist zu sehen, wie so ein Rechenknecht -ohne Betriebssystem-
zum Arbeiten gebracht wird.
In einer Hochsprache wie C sind einfach zu viele Dinge in Headerfiles oder Libraries versteckt,
die die Programmierung zwar bequem und portabel machen - aber für das Verständnis der
Funktionsweise auch viel verstecken.

Was habe bzw. brauche ich?

Hardware:
PC mit FreeBSD und USB2.0 Schnittstelle,
USB Kabel,
ISP ( habe ich nicht, dafür muss ein Arduino herhalten )
Steckbrett mit ATmega328p (dip28) der dann mit dem ArduinoBoard und
dessen 6ISP Stifte verbunden wird

Software:
- hallo_welt.sx
- mit pkg installierte Binaries: avr-gcc, avrdude

Code:
avr-gcc -c  hallo_welt.sx -mmcu=atmega328p  -o hallo_welt.o
avr-ld hallo_welt.o -o hallo_welt.elf
avr-objcopy -O ihex hallo_welt.elf eeprom.hex
avrdude -c avrisp -p m328p -P COM5 -b 19200 -U flash:w:eeprom.hex
ist das bis hierhin o.k.?
 
C

CrimsonKing

Guest
#2
Die Vorstellung, dass irgendwo Menschen sitzen, die auf das arme C mit der Eclipse-Kanone feuern, macht mich traurig.

Es sieht aber unbefriedigend aus, mit Spezialversionen von gcc/ld/objcopy zu arbeiten. Verhält sich GCC auf Atmel halbwegs standardkonform? Nach kurzer Recherche tut es das eher nicht, womit du das Problem, dass "zu viele Dinge in Headerfiles oder Libraries versteckt" sind, eher nicht löst.