In startup code SEGGER_ARM_startup.s file as below,
START_FUNC _start
//
// Call linker init functions which in turn performs the following:
// * Perform segment init
// * Perform heap init (if used)
// * Call constructors of global Objects (if any exist)
//
ldr R4, =__SEGGER_init_table__ // Set table pointer to start of initialization table
L(RunInit):
ldr R0, [R4] // Get next initialization function from table
adds R4, R4, #4 // Increment table pointer to point to function arguments
blx R0 // Call initialization function
b L(RunInit)
//
MARK_FUNC __SEGGER_init_done
We are not able to understand code function/flow. Need following clarity.
i) What this piece of code will do?
ii)we unable to locate _SEGGER_init_table__ . Please let us know in which file this table and related functions are located.
iii) How it will come out of loop? It looks to be an indefinite loop.
[/quote]
START_FUNC _start
//
// Call linker init functions which in turn performs the following:
// * Perform segment init
// * Perform heap init (if used)
// * Call constructors of global Objects (if any exist)
//
ldr R4, =__SEGGER_init_table__ // Set table pointer to start of initialization table
L(RunInit):
ldr R0, [R4] // Get next initialization function from table
adds R4, R4, #4 // Increment table pointer to point to function arguments
blx R0 // Call initialization function
b L(RunInit)
//
MARK_FUNC __SEGGER_init_done
We are not able to understand code function/flow. Need following clarity.
i) What this piece of code will do?
ii)we unable to locate _SEGGER_init_table__ . Please let us know in which file this table and related functions are located.
iii) How it will come out of loop? It looks to be an indefinite loop.
[/quote]