Guten Abend Programmiergemeinde,
ich möchte auf einem Arduino nano ein zeitkritisches Programmteil
mittels inline Assembler realisieren. Bei dem Versuch das X Register zu
laden, bekomme ich eine mir nicht verständliche Fehlermeldung.
Was mache ich falsch?
Quellcode:
void setup() {
// put your setup code here, to run once:
}
int wert;
int *p_wert = &wert;
void loop() {
// put your main code here, to run repeatedly:
asm volatile(
"ldi r26, LOW(p_wert)\n\t"
"ldi r27, HIGH(p_wert)\n\t");
// ... hier dann weiterer code
}
Und hier die Fehlermeldungen:
Arduino: 1.6.9 (Windows 7), Board: "Arduino Nano, ATmega328"
C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs
-logger=machine -hardware "C:\Program Files (x86)\Arduino\hardware"
-hardware "C:\Users\Andi\AppData\Local\Arduino15\packages" -hardware
"C:\Users\Andi\Documents\Arduino\hardware" -tools "C:\Program Files
(x86)\Arduino\tools-builder" -tools "C:\Program Files
(x86)\Arduino\hardware\tools\avr" -tools
"C:\Users\Andi\AppData\Local\Arduino15\packages" -built-in-libraries
"C:\Program Files (x86)\Arduino\libraries" -libraries
"C:\Users\Andi\Documents\Arduino\libraries"
-fqbn=arduino:avr:nano:cpu=atmega328 -ide-version=10609 -build-path
"C:\Users\Andi\AppData\Local\Temp\build7277334a56787ac19e2e500382681313.
tmp" -warnings=none -prefs=build.warn_data_percentage=75 -verbose
"C:\Users\Andi\Documents\Arduino\InlineAssembler\InlineAssembler.ino"
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine
-hardware "C:\Program Files (x86)\Arduino\hardware" -hardware
"C:\Users\Andi\AppData\Local\Arduino15\packages" -hardware
"C:\Users\Andi\Documents\Arduino\hardware" -tools "C:\Program Files
(x86)\Arduino\tools-builder" -tools "C:\Program Files
(x86)\Arduino\hardware\tools\avr" -tools
"C:\Users\Andi\AppData\Local\Arduino15\packages" -built-in-libraries
"C:\Program Files (x86)\Arduino\libraries" -libraries
"C:\Users\Andi\Documents\Arduino\libraries"
-fqbn=arduino:avr:nano:cpu=atmega328 -ide-version=10609 -build-path
"C:\Users\Andi\AppData\Local\Temp\build7277334a56787ac19e2e500382681313.
tmp" -warnings=none -prefs=build.warn_data_percentage=75 -verbose
"C:\Users\Andi\Documents\Arduino\InlineAssembler\InlineAssembler.ino"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g
-Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections
-fno-threadsafe-statics -w -x c++ -E -CC -mmcu=atmega328p
-DF_CPU=16000000L -DARDUINO=10609 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR
"-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino"
"-IC:\Program Files
(x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs"
"C:\Users\Andi\AppData\Local\Temp\build7277334a56787ac19e2e500382681313.
tmp\sketch\InlineAssembler.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g
-Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections
-fno-threadsafe-statics -w -x c++ -E -CC -mmcu=atmega328p
-DF_CPU=16000000L -DARDUINO=10609 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR
"-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino"
"-IC:\Program Files
(x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs"
"C:\Users\Andi\AppData\Local\Temp\build7277334a56787ac19e2e500382681313.
tmp\sketch\InlineAssembler.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g
-Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections
-fno-threadsafe-statics -w -x c++ -E -CC -mmcu=atmega328p
-DF_CPU=16000000L -DARDUINO=10609 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR
"-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino"
"-IC:\Program Files
(x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs"
"C:\Users\Andi\AppData\Local\Temp\build7277334a56787ac19e2e500382681313.
tmp\sketch\InlineAssembler.ino.cpp" -o
"C:\Users\Andi\AppData\Local\Temp\build7277334a56787ac19e2e500382681313.
tmp\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files (x86)\Arduino\tools-builder\ctags\5.8-arduino10/ctags"
-u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns
--line-directives
"C:\Users\Andi\AppData\Local\Temp\build7277334a56787ac19e2e500382681313.
tmp\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g
-Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections
-fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L
-DARDUINO=10609 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\Program
Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program
Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs"
"C:\Users\Andi\AppData\Local\Temp\build7277334a56787ac19e2e500382681313.
tmp\sketch\InlineAssembler.ino.cpp" -o
"C:\Users\Andi\AppData\Local\Temp\build7277334a56787ac19e2e500382681313.
tmp\sketch\InlineAssembler.ino.cpp.o"
C:\Users\Andi\AppData\Local\Temp\ccurZb2d.s: Assembler messages:
C:\Users\Andi\AppData\Local\Temp\ccurZb2d.s:40: Error: garbage at end of
line
C:\Users\Andi\AppData\Local\Temp\ccurZb2d.s:41: Error: garbage at end of
line
exit status 1
Fehler beim Kompilieren für das Board Arduino Nano.