building

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
building [2011/08/24 14:58] adminbuilding [2018/11/26 09:48] (current) admin
Line 1: Line 1:
 +
 +====== ARM GCC ======
 +
 +https://www.mikrocontroller.net/articles/ARM_GCC
  
 ====== Different build options ====== ====== Different build options ======
Line 61: Line 65:
   qemu-system-arm -M versatilepb -m 128M -nographic -kernel test.bin   qemu-system-arm -M versatilepb -m 128M -nographic -kernel test.bin
  
 +==== Using Newlib ====
 +
 +  arm-none-eabi-gcc -mcpu=cortex-a8 -I ~/embedded_linux_newlib/newlib-1.18.0/newlib/libc/include   -c -o test.o test.c
 +  arm-none-eabi-gcc -mcpu=cortex-a8 -I ~/embedded_linux_newlib/newlib-1.18.0/newlib/libc/include   -c -o syscalls.o syscalls.c
 +  arm-none-eabi-as -mcpu=cortex-a8  -o startup.o startup.s
 +  arm-none-eabi-gcc -mcpu=cortex-a8 -I ~/embedded_linux_newlib/newlib-1.18.0/newlib/libc/include   -c -o syscalls.o syscalls.c
 +  arm-none-eabi-gcc -nostdlib  -T test.ld  test.o startup.o syscalls.o ~/embedded_linux_newlib/newlib-1.18.0/arm-none-eabi/newlib/libc.a ~/CodeSourcery/Sourcery_G++_Lite/lib/gcc/arm-none-eabi/4.5.2/libgcc.a -o test
 +  arm-none-eabi-objcopy -O binary test test.bin
 +  qemu-system-arm -M realview-pb-a8 -serial stdio -kernel test.bin
 +
 +==== Making use of CS3 ====
 +
 +The “arm-none-eabi” toolchain also contains a particular library that is linked by default in compiled programs, which is called CS3™: the CodeSourcery Common Startup Code Sequence. This library is associated with linker scripts for generic and specific platforms, chosen through a compiler switch:
 +
 +  arm-none-eabi-gcc -mthumb -march=armv7 -mfix-cortex-m3-ldrd -T lm3s6965.ld main.c reset.S syscalls.c -o main
 +
 +CodeSourcery provides a standard linked script that needs to be modified for our specific Qemu simulated board .../Sourcery_G++_Lite/arm-none-eabi/lib/thumb2/generic-m.ld. In addition to that, we need to write the reset code and the syscalls.c function as previously done.
 +
 +  arm-none-eabi-objcopy -O binary main main.bin
 +  qemu-system-arm -M lm3s6965evb --kernel main.bin --serial stdio
 ===== U-Boot with bare metal program ===== ===== U-Boot with bare metal program =====
  
  • building.1314197880.txt.gz
  • Last modified: 15 years ago
  • by admin