blob: cb92e2a28664e2d72fec8b5cd391a281f785d9d8 [file] [log] [blame]
#define ASM
#include "config.h"
#include "cpu.h"
#include "mks5lboot.h"
ENTRY(_start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
#define BIN_ORIG DFU_LOADADDR + BIN_OFFSET
#define BIN_SIZE MAX_PAYLOAD
MEMORY
{
IRAM : ORIGIN = BIN_ORIG, LENGTH = BIN_SIZE
}
SECTIONS
{
.text : {
*(.init.text*)
*(.text*)
*(.icode*)
. = ALIGN(4);
} > IRAM
/* include initialized BSS (if any) into DFU image */
.bss : {
*(.bss*)
*(.ibss*)
*(COMMON)
. = ALIGN(4);
} > IRAM
#if 1
/* reuse pwnage as stack, 0x30c bytes available */
_exception_stack = BIN_ORIG;
_supervisor_stack = _exception_stack;
#else
/* include stack into DFU image */
.stack : {
. += 0x400;
_supervisor_stack = .;
. += 0x200;
_exception_stack = .;
} > IRAM
#endif
.data : {
*(.data*)
*(.rodata*)
*(.idata*)
*(.irodata*)
/* place bootloader IM3 header at the end, mkdfu
will concatenate the bootloader binary here */
. = ALIGN(16);
*(.im3info.data*)
} > IRAM
}