#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 }