add: test programm and linker script
Signed-off-by: Nicolas Robert <nicolas.robert@epita.fr>
This commit is contained in:
parent
d966107648
commit
3b87f1c39e
29
test/Makefile
Normal file
29
test/Makefile
Normal file
@ -0,0 +1,29 @@
|
||||
CC=arm-none-eabi-gcc
|
||||
OBJCOPY=arm-none-eabi-objcopy
|
||||
|
||||
LDS=test.lds
|
||||
|
||||
OPTI=-O0
|
||||
CFLAGS= $(OPTI) -g -gdwarf-2 -mthumb -fno-builtin -mcpu=cortex-m4 -Wall -std=c99 -ffunction-sections -fdata-sections -mabi=aapcs -fno-unroll-loops -ffast-math -ftree-vectorize -fverbose-asm
|
||||
LDFLAGS=-nostartfiles -Wl,-gc-sections -T$(LDS) -L. --specs=nano.specs
|
||||
|
||||
all: test.bin
|
||||
|
||||
test.o: test.c
|
||||
$(CC) $(CFLAGS) -c test.o test.c
|
||||
|
||||
test.elf: test.o test.lds
|
||||
$(CC) $(LDFLAGS) test.o -o test.elf
|
||||
|
||||
test.bin: test.elf
|
||||
$(OBJCOPY) -O binary -S test.elf test.bin
|
||||
|
||||
debug: test.bin
|
||||
st-flash write test.bin 0x8000000
|
||||
st-util
|
||||
|
||||
run: test.bin
|
||||
st-flash write test.bin 0x8000000
|
||||
|
||||
clean:
|
||||
$(RM) test.o test.elf test.bin
|
144
test/test.c
Normal file
144
test/test.c
Normal file
@ -0,0 +1,144 @@
|
||||
#include <stdint.h>
|
||||
|
||||
int default_handler(void)
|
||||
{
|
||||
while(1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int reset_handler(void)
|
||||
{
|
||||
while(1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t vector_table[128] __attribute__((section(".isr_vector"))) = {
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) reset_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler,
|
||||
(uint32_t) default_handler
|
||||
};
|
49
test/test.lds
Normal file
49
test/test.lds
Normal file
@ -0,0 +1,49 @@
|
||||
MEMORY
|
||||
{
|
||||
FLASH (rx): ORIGIN = 0x8000000, LENGTH = 512K
|
||||
RAM (rwx): ORIGIN = 0x20000000, LENGTH = 96K
|
||||
}
|
||||
|
||||
ENTRY(reset_handler)
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
.isr_vector :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
KEEP(*(.isr_vector))
|
||||
. = ORIGIN(FLASH) + 512;
|
||||
} > FLASH
|
||||
|
||||
.text :
|
||||
{
|
||||
*(.text)
|
||||
. = ALIGN(4);
|
||||
_etext = .;
|
||||
} > FLASH
|
||||
|
||||
.data :
|
||||
{
|
||||
_sdata = .;
|
||||
*(.data*)
|
||||
_edata = .;
|
||||
. = ALIGN(4);
|
||||
} > RAM AT>FLASH
|
||||
|
||||
.bss :
|
||||
{
|
||||
__bss_start__ = .;
|
||||
*(.bss)
|
||||
__bss_end__ = .;
|
||||
} > RAM
|
||||
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.ARM.exidx*)
|
||||
}
|
||||
PROVIDE(_heap = __bss_end__);
|
||||
PROVIDE(_heap_end = _stack - _stack_size);
|
||||
PROVIDE(_stack_size = 1024);
|
||||
PROVIDE(_stack = ORIGIN(RAM) + LENGTH(RAM));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user