.bdscr : ALIGN(4) KEEP(*(.bdscr)) > FLASH Instead of:
.bdscr : KEEP(*(.bdscr)) . = ALIGN(4096); // Over-alignment > FLASH With: bloat bdscr
gcc -DNDEBUG -ffunction-sections -fdata-sections ... ld --gc-sections -o output.elf input.o Or manually strip after linking: .bdscr : ALIGN(4) KEEP(*(.bdscr)) >