Patent ID: 7895427

Claim:
In an embedded system, a method of executing a software application having a binary size that is larger than a memory space out of which the software application will execute, wherein the software application is split into two or more code sections, and wherein the two or more code sections comprise one or more initialization sequences and a main code sequence, the method comprising: loading each initialization sequence of the one or more initialization sequences in the memory space; sequencing the one or more initialization sequences in a pre-defined order prior to loading each initialization sequence of the one or more initialization sequences; executing each initialization sequence of the one or more initialization sequences out of the memory space; loading the main code sequence in the memory space after the execution of the one or more initialization sequences; executing the main code sequence out of the memory space, wherein the steps of loading each initialization sequence of the one or more initialization sequences, loading the main code sequence and sequencing the one or more initialization sequences are performed by a bootloader; saving the context of the bootloader before the execution of each initialization sequence of the one or more initialization sequences, wherein the bootloader loads the one or more initialization sequences before executing the one or more initialization sequences and loads the main code sequence before executing the main code sequence; and restoring the context of the bootloader after execution of each initialization sequence of the one or more initialization sequences.