I have just started the implementation of booting of an embedded chip . In my case I am getting my program downloaded from flash memory and going to volatile memory. As per my understanding it is the startup code which will distribute the different segments like .text,.data etc to their physical address as per defined in lcf. So how program counter goes from booting program to startup address , where the address of startup code is define(in which file in general).
And also what is the exactly the .start_address segment contains ( address of ?)