Have a look at this comprehensive explanation regarding memory layout and linkage.
You have to add the related startup code copying over the RAM sections in ROM to their destinations in RAM and initializing the C runtime environment (zeroing .bss etc). There are plenty of examples in the net and often it’s provided by your SDK matching the also provided linker script because these files have to match.