I am new to embedded systems low-level programming and I am quite confused what happens exactly after the linker generate an output object file and during flashing the .bin file.
1- I see in the linker script that the loadable memory address(LMA) and virtual memory address(VMA) of a .bss section is in RAM, my question is how does it initially go to RAM since I flash my binary image in FLASH memory?
2- The start up codes I saw only zero out the .bss section in RAM, but how did it even get there if the start-up code didn't copy it to RAM as it does with the .data section ?