1,在keil uvision4 中編譯韋東山的裸板程序時,會提示錯誤:
Build target 'Target 1'
linking...
key_led.axf: Error: L6218E: Undefined symbol Image$$RW_RAM1$$RW$$Length (referred from s3c2440.o).
Target not created
原因是target中沒有配置read/only中的ROM1 和 read/write中的RAM1(這兩個選項對應編譯後生成的代碼在芯片中 的存儲位置),可以配置如下:
這時再編譯連接就不會有問題了。
2,將程序丟到Ubuntu中編譯時,有個makfile如下:
key_led.bin : crt0.S key_led.c
arm-linux-gcc -g -c -o crt0.o crt0.S
arm-linux-gcc -g -c -o key_led.o key_led.c
arm-linux-ld -Ttext 0x0000000 -g crt0.o key_led.o -o key_led_elf
arm-linux-objcopy -O binary -S key_led_elf key_led.bin
arm-linux-objdump -D -m arm key_led_elf > key_led.dis
clean:
rm -f key_led.dis key_led.bin key_led_elf *.o
注:crt0為啟動引導的匯編文件,作用等同與用keil建立工程時系統自動導入的s3c2440.s
當make時會提示如下錯誤:
解決辦法是:arm-linux-gcc加上-nostdlib選項
這樣再次make時就成功了