link.ld -------------- OUTPUT_FORMAT("elf32-littlearm","elf32-littlearm","elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SECTIONS { . = 0x00200000; . = ALIGN(4); .text : { *(.text) } .data : { *(.data) } .bss : { *(.bss) } } Makefile --------------- main: /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-ld -t link.ld loader.o main.o -o loader.bin -Map=loader.map step2: /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-gcc main.c -o main.o -Wall -nostartfiles -nostdlib step1: /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-as -mcpu=arm920t -march=armv4t -EL loader.s -o loader.o -acdhlns >loader.lst clean: rm *.o *.bin dump: /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-objdump --disassemble loader.bin