§ Сборка кода makefile

Готовый код здесь.
1all:
2	# Компиляция
3	arm-none-eabi-as entry.s -o entry.o
4	arm-none-eabi-gcc -nostdlib main.cc -Os -c -o main.o
5	arm-none-eabi-ld -T linker.ld entry.o main.o -o main.elf
6	# Выгрузка в бинарный
7	arm-none-eabi-objcopy main.elf -O binary -R .note -R .note.gnu.build-id -R .comment -S main
8	# Показать дамп для отладки
9	arm-none-eabi-objdump -S main.elf > main.lst
10clean:
11	rm -f *.o *.elf *.lst main

§ Файл entry.s

1.text
2.global _start
3.extern main
4_start:
5
6    ldr sp, =0x8000
7    b   main

§ linker.ld

1MEMORY
2{
3    ram : ORIGIN = 0x0000, LENGTH = 0x100000
4}
5
6SECTIONS
7{
8    .text : { *(.text*) } > ram
9    .bss  : { *(.bss*)  } > ram
10}

§ Файл main.cc

1void main() {
2
3    char* vm = (char*) 0x1000;
4    for (int i = 0; i < 256; i++)
5        vm[i] = i;
6
7    for (;;);
8}