Revision 328d6253c5f255d88b969913daebef984062dfa5 authored by alex@thinkpad on 02 February 2018, 13:44:08 UTC, committed by alex@thinkpad on 02 February 2018, 13:44:08 UTC
(to make sure all events are printed in all modes)
1 parent 03c58c5
Raw File
footer.c
/* this magic is a BX R3 */
#define FOOTER_MAGIC 0xE12FFF13
#define STR(x) STRx(x)
#define STRx(x) #x

asm(
    /* footer is read by first instructions to check if autoexec.bin was loaded correctly 
       .data is selected after .text by the default linker script, so this will go to the
       end of the file, being a usable footer.
    */
    ".section .data\n"
    
    ".align 5, 0xCE\n"

    /* fill up so there are only two words left */
    ".word   0xCEEEEEEC\n"
    ".word   0xCEEEEEEC\n"
    ".word   0xCEEEEEEC\n"
    ".word   0xCEEEEEEC\n"
    ".word   0xCEEEEEEC\n"
    ".word   0xCEEEEEEC\n"
    
    ".globl autoexec_bin_footer\n"
    "autoexec_bin_footer:\n"
    ".word   "STR(FOOTER_MAGIC)"\n"
    "autoexec_bin_checksum:\n"
    ".word   0xCCCCCCCC\n"
    ".globl autoexec_bin_checksum_end\n"
    "autoexec_bin_checksum_end:\n"
);
back to top