Il progresso in questo campo è molto rapido e i libri in pochi anni sono già obsoleti.
Potresti cercare in qualche libreria editrice universitaria o su Amazon, o verificare che libri di testo utilizzano in qualche corso specifico sui microcontrollori in corsi di ingegneria elettronica/informatica. I
risultati in italiano non sono molti, trovi molto di più in inglese (magari cercando specificamente libri su
microcontrollori ARM, che sono quelli che oggi vanno per la maggiore).
Io ti consiglio di cercare con Google il corso online "Embedded systems: shape the world" dell'Università del Texas. Si basa soprattutto su video ed esercizi pratici (molto importanti per capire) su una scheda economica che dovresti acquistare. Serve per una prima infarinatura.
Poi per specializzarti dovrai necessariamente leggerti i datasheet del microcontrollore e dei sensori/moduli che intendi utilizzare, e sviluppare progetti in pratica, affrontando problemi più o meno imprevisti di clock, temporizzazioni, interfacciamento I2C, SPI ecc.
Per la struttura del software embedded io trovo molto didattico e avanzato il libro "Practical UML Statecharts in C/C++, 2nd Edition" di Miro Samek, fondatore della Quantum Leaps (cerca con Google).
Spiega come strutturare i programmi embedded in modo molto pulito ed efficiente come macchine a stati.
Oggi come oggi però la tendenza che vedo nell'industria è di utilizzare sistemi operativi embedded che supportano programmi multithread come Linux embedded, FreeRTOS ecc, che a mio avviso sono meno efficienti e richiedono un maggiore dispendio di risorse rispetto alle macchine a stati, anche se possono sembrare più comodi da usare e più adatti a processori multicore.
Nel complesso, ci vuole qualche annetto.
La cosa migliore secondo me è trovare un lavoro che ti permetta di smanettare con queste cose, così mentre impari ti pagano

.