EmbeddedRelated.com
The 2026 Embedded Online Conference

GNU Linker Scripts. Part 1. .data, .bss, and the Startup Contract

Alexey KarelinAlexey Karelin May 5, 2026

Before your first line of C code executes, your system must establish a vital memory contract. Discover how the GNU Linker manages the transition from power-on to a ready-to-run state by deconstructing the roles of .data and .bss sections. Learn how to map Virtual and Load Memory Addresses effectively and decode the startup routines that initialize your global variables. By mastering these fundamental linker script mechanics, you gain total control over your embedded application's memory layout and ensure your startup code performs reliably every time.


GNU Linker Scripts. Part 1. .data, .bss, and the Startup Contract

Alexey KarelinAlexey Karelin May 5, 2026

Before your first line of C code executes, your system must establish a vital memory contract. Discover how the GNU Linker manages the transition from power-on to a ready-to-run state by deconstructing the roles of .data and .bss sections. Learn how to map Virtual and Load Memory Addresses effectively and decode the startup routines that initialize your global variables. By mastering these fundamental linker script mechanics, you gain total control over your embedded application's memory layout and ensure your startup code performs reliably every time.


The 2026 Embedded Online Conference