编译时提示错误如下:
MOV R1,#0x00015001
led2_on.S:14: Error: invalid constant -- `mov R1,#0x00015001'
但改成
MOV R1,#0x00015000
就没问题. 困惑中.......
另外:
LDR R1,=0x00015001
也没问题
详细程序如下
===
simon@lionteeth:~/work/studycdrom/hardware/led_on$ vim led2_on.S
No mapping found
Hit ENTER or type command to continue
@******************************************************************************
@ Lignt LED2 and LED4 and LED3
@ LED2 : GPB6
@ LED3 : GPB7
@ LED4 : GPB8
@******************************************************************************
.text
.global _start
_start:
LDR R0,=0x56000010 @ GPBCON address
@
@
MOV R1,#0x00015001 @ GPB6: [13:12] GPB7[15,14] GPB8[17:16] 0x0001 5000
@LDR R1,=0x00015001 @ GPB6: [13:12] GPB7[15,14] GPB8[17:16] 0x0001 5000
STR R1,[R0] @
LDR R0,=0x56000014 @ GPBDATA address
@
MOV R1,#0x00000001 @
@
STR R1,[R0] @
MAIN_LOOP:
B MAIN_LOOP
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
simon@lionteeth:~/work/studycdrom/hardware/led_on$
simon@lionteeth:~/work/studycdrom/hardware/led_on$ make clean;make
rm -f led2_on.bin led2_on_elf *.o
arm-linux-gcc -v -g -c -o led2_on.o led2_on.S
Reading specs from /home/simon/work/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux/lib/gcc/arm-linux/3.4.5/specs
Configured with: /home/simon/work/crosstool/crosstool-0.43/build/arm-linux/gcc-3.4.5-glibc-2.3.6/gcc-3.4.5/configure --target=arm-linux --host=i686-host_pc-linux-gnu --prefix=/home/simon/work/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux --with-float=soft --with-headers=/home/simon/work/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux/arm-linux/include --with-local-prefix=/home/simon/work/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux/arm-linux --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 3.4.5
/home/simon/work/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux/libexec/gcc/arm-linux/3.4.5/cc1 -E -lang-asm -quiet -v -D__ARM_ARCH_3__ led2_on.S -msoft-float -fworking-directory -o /tmp/ccyDvFp3.s
#include "..." search starts here:
#include <...> search starts here:
/home/simon/work/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux/lib/gcc/arm-linux/3.4.5/include
/home/simon/work/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux/lib/gcc/arm-linux/3.4.5/../../../../arm-linux/sys-include
/home/simon/work/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux/lib/gcc/arm-linux/3.4.5/../../../../arm-linux/include
End of search list.
/home/simon/work/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux/lib/gcc/arm-linux/3.4.5/../../../../arm-linux/bin/as --gdwarf2 -mfpu=softfpa -o led2_on.o /tmp/ccyDvFp3.s
led2_on.S: Assembler messages:
led2_on.S:14: Error: invalid constant -- `mov R1,#0x00015001'
make: *** [led2_on.bin] Error 1
simon@lionteeth:~/work/studycdrom/hardware/led_on$