Java-Programmed Bootloading in Spite of Load-Time Code Patching on a Minimal Embedded Bytecode Processor
Source: Technische Universitat Dresden
This paper presents the bootstrapping solution used on the embedded bytecode processor SHAP. Although it employs load-time bytecode patching to resolve constant pool indirections, it is itself most comfortably implemented in Java and executed as bytecode by SHAP. Of course, the processor startup sequence initiates the plain loading of the bootloader code - but it does not undertake any conversions on it. The core chicken-and-egg problem is tackled by the bootloader itself, which separates into distinct phases with growing capabilities. This paper describes the operations and conversions performed during these phases and how the operational control is transferred from one phase to another.