18 578 649 książek w 175 językach
Jednak się nie przyda? Nic nie szkodzi! Możesz zwrócić produkty nawet do 30 dni
Bon prezentowy to zawsze dobry pomysł. Obdarowany może za bon prezentowy wybrać cokolwiek z naszej oferty.
Nawet do 30 dni na zwrot
Have you ever stared at a linker error message that made absolutely no sense, copied a linker script from an old project just to get your build working, and quietly hoped you'd never have to touch it again?
If that sounds familiar, you're not alone, and you're exactly who this book was written for.
Most firmware engineers can write solid C code, configure peripherals, and debug a tricky timing issue without breaking a sweat. But ask them to explain why a variable's initial value needs to live in one address and run from another, or why an interrupt suddenly stops firing after a bootloader hands off control, and the confidence disappears. That gap isn't a knowledge problem you can Google your way out of in five minutes. It's a blind spot that most embedded courses and tutorials skip entirely, because it sits in the uncomfortable space between the compiler and the hardware, where the linker quietly makes every decision about where your program actually lives in memory.
This book closes that gap, deliberately and thoroughly.
Inside, you'll build a real, working understanding of how a linker script controls memory regions, organizes sections, separates load addresses from execution addresses, manages symbols, and ultimately decides whether your firmware boots cleanly or fails in ways that are maddening to trace. You won't just learn syntax. You'll learn why each command exists, what problem it was designed to solve, and how experienced engineers actually use it on production hardware.
So what will you walk away with?
You'll be able to read an unfamiliar linker script and understand its intent within minutes, instead of guessing. You'll know exactly how to structure memory regions for a new microcontroller, how to place startup code, interrupt tables, and custom sections with full control, and how to separate a variable's storage location from where it actually runs, a distinction that trips up even experienced developers. You'll understand how bootloaders hand off execution to an application, how dual bank update schemes protect a device from a failed firmware update, and how memory layout choices contribute directly to a device's security posture rather than existing as an afterthought.
You'll also find a full set of real world case studies, walking through the design decisions behind a battery powered sensor node, a multitasking control system, a safety conscious device with redundant memory zones, and a field updatable product with a dual bank bootloader, so you can see these techniques applied to problems that actually resemble what you're working on.
Who is this for? If you're an embedded software engineer who wants to stop treating the linker script as a mysterious file you inherit rather than something you understand, this book is for you. If you're preparing to design firmware for a new microcontroller and don't want to discover memory layout mistakes after the hardware has already shipped, this book is for you. If you've ever been the person on your team who gets handed the "why won't this link correctly" problem and had to figure it out under pressure, this book will make that job considerably easier the next time it comes up.
You don't need to be a linker expert to start. You do need some familiarity with C and a basic sense of how compiled programs work. Everything else, the memory maps, the address arithmetic, the startup sequencing, the security considerations, is built up carefully, one concept at a time, with working examples throughout.
Firmware that boots reliably, updates safely, and behaves predictably in the field doesn't happen by accident. It happens because someone understood exactly where every piece of that firmware lives in memory, and why. This book will make sure that someone is you.
Cześć! Jestem Libroamiko, Twój doradca książkowy.
Jak mogę Ci pomóc?