Everything
8.2.5 Initialization of peripheral I/O registers required before main function execution

Initialize the peripheral I/O registers which must be set in order to execute the startup routine.

Registers can be set by just writing assembler instructions. They can also be set by branching from the startup routine to a C language function and make the settings from within that C language function. For example, write the following instruction in the startup routine when creating the C language function "void hdwinit(void)" and calling it from the startup routine.

CALL    !!_hdwinit