Wie im Titel beschrieben, habe ich ein Problem dabei, die Include Datei
für den Atmega328 zu finden. Ich habe eine Datei gefunden, die
anscheinend für AVRStudio ist und die bei mir nur Fehler ausspuckt, das
keine ; am Ende der Zeilen sind.
Beitrag "m328def.inc Datei für den ATmega328 bzw. ATmega328P gesucht"
Ich arbeite mit Linux und avr-asm
Ok, danke ich hab da zwar eine gefunden, ist aber die gleiche, die ich
bereits habe. Mein Compiler meckert das die Zeilen nicht mit ; enden.
(nicht alle aber die, die ohne ; enden da meckert er)
mfg
atmega328 schrieb:> Keiner eine Idee?
Wir rufst Du avr-as auf?
Ich bin mir nicht sicher, ob man bei avr-as die controller-spezifischen
Parameter einbinden muss. Versuche mal
> avr-as -mmcu=atmega328 -o name.o name.s
Verschiedene Assembler haben unterschiedliche Syntax. Die
Syntax beim avr-as ist anders als beim Atmel Assembler.
avra (unter Linux) benutzt eine ähnliche Syntax wie der Atmel Assembler.
Danke euch erstmal!
@Stefan wie meinst du, das gcc frontend? Ich habe Assembler Code.
@Flip Ich will Assembler Code assemblieren.
@Alexander Ich rufe das ganze so auf
PS: Es funktioniert ja auch, wenn ich die verwendeten Konstanten in der
selben Datei definiere aber eine include Datei wäre schon toll um nicht
jedes mal alle Ports etc neu zu definieren.
Außerdem funktioniert (vermutlich deswegen) der Befehl .def nicht.
mfg
atmega328 schrieb:> Stefan wie meinst du, das gcc frontend? Ich habe Assembler Code.
GCC steht für GNU-Compiler-Collection und ist nicht auf C beschränkt.
Benutze .S (großes S) als Extension, oder alternativ die Option "-x
assembler-with-cpp", und dann ersetzt du avr-as durch avr-gcc.
BTW: Den Linker will man eigentlich auch nicht direkt aufrufen.
atmega328 schrieb:> aber eine include Datei wäre schon toll
Und diese Inklude-Datei heißt <avr/io.h>.
Ach egal, ich glaube ich kann einfach nicht erklären was ich meine. Ich
frag mal anders: Wieso wird die include Datei in dem Code nicht gefunden
und wieso funktioniert .def nicht?
Hallo,
bei mir unter Debian befindet sich ../avr/io.h unter *
/usr/lib/avr/include/avr/io.h
Oben in der Datei io.h wird beschrieben, wie das funktioniert:
...
This header file includes the apropriate IO definitions for the
device that has been specified by the <tt>-mmcu=</tt> compiler
command-line switch. This is done by diverting to the appropriate
file <tt><avr/io</tt><em>XXXX</em><tt>.h></tt> which should
never be included directly. Some register names common to all
AVR devices are defined directly within
<tt><avr/common.h></tt>,
which is included in <tt><avr/io.h></tt>,
but most of the details come from the respective include file.
...
* bei mir sind avr-libc und gcc-avr installiert.