Raspberry PI Assembly Language rappresenta un testo ideale per chiunque desideri approfondire e sfruttare l’hardware del proprio SBC.
Abbiamo da poco recensito un libro introduttivo alla programmazione assembly su processore ARM nell’articolo intitolato Computer Organization and Design ARM Edition – MK.
La recensione ha riscosso un discreto successo, pertanto proseguiamo su questa strada, presentando altri due libri sull’argomento, dedicati stavolta specificamente al Raspberry PI ed alla sua interfaccia GPIO verso l’esterno. Ne approfitto per ringraziare gli amici Attilio e Biagio per avermi suggerito di proseguire su questo percorso: se avremo sufficienti richieste in merito, potremo anche pensare di lanciare una rubrica interamente indirizzata alla programmazione in Assembler del nostro Raspberry PI, quindi fatevi sentire!
Il link
- Titolo: Raspberry PI Assembly Language Programming – ARM processor coding
- Autori: Stephen Smith
- Editore: APress
- Prezzo: 31.19 euro (copertina flessibile) – 23.39 euro (formato Kindle)
L’autore: Stephen Smith
Stephen Smith è un software architect in pensione, con sede a Gibsons, BC, Canada. È stato attratto dallo sviluppo di software sin dal liceo, troppi anni or sono per ricordarli esattamente.
Ha lavorato alla Linea di prodotti contabili Sage 300 per 23 anni. Da quando è in pensione, ha approfondito le tematiche legate all’Intelligenza Artificiale, acquisito una licenza avanzata per radioamatori, e si diletta con mountain bike, escursionismo e fotografia naturalistica. Continua a scrivere sul suo popolare blog di tecnologia su smist08.wordpress.com e ha scritto due romanzi di fantascienza in una serie, Influence, disponibile su Amazon.
Il formato
Il libro conta 380 pagine, divise in 16 capitoli e 5 appendici:
- Getting started
- Loading and adding
- Tooling up
- Controlling the program flow
- Thanks for the memories
- Functions and stack
- Linux operating system
- Programming GPIO pins
- Interactiing with C and Python
- Multiply, divide and accumulate
- Floating-point operations
- NEON coprocessor
- Conditional instructions and optimizing code
- Reading and understanding code
- Thumb code
- 64 bits
- Appendix A – The ARM instruction Set
- Appendix B – Linux system calls
- Appendix C – Binary formats
- Appendix D – Assembler directives
- Appendix E – ASCII character set
La forma è scorrevole e colloquiale, ricca di esempi e di geniali trovate didattiche, e conduce il lettore attraverso i segreti ed i trucchi del linguaggio Assembler in modo semplice ed efficace. Tuttavia l’approccio ai vari capitoli non è stettamente modulare: talvolta pre completare un esempio occorrono files e programmi sviluppati nei capitoli precedenti.
Per chi non ha voglia di digitare, è disponibile un repository online per scaricare il codice degli esempi.
A chi è diretto
Sebbene dichiari di essere alla portata di tutti coloro in grado di comprendere cosa sia una variabile, un ciclo o una condizione logica, il testo richiede attenzione e volontà per essere digerito. Il linguaggio Assembler necessita infatti di una certa conoscenza dell’hardware sul quale si appoggia, e per poter essere davvero efficiente presuppone che l’utente sia in grado di comprendere i concetti di base legati alle system call di Linux, al passaggio dei parametri nelle funzioni, all’uso di files di sistema e alla virtualizzazione degli accessi alla memoria. Persino la gesione del GPIO prevede due modalità legate a Linux o alla manipolazione hardware degli indirizzi dei pin.
I metodi di gestione intrinsecamente “complicati” e la mancanza di modularità tra i capitoli rendono il libro interessante per chiunque desideri apprendere e padroneggiare in pratica l’hardware del proprio Raspberry attraverso routines in Assembler, ma un po’ ostico per chi invece cercasse un semplice manuale teorico del linguaggio, magari suddiviso in capitoli monotematici fruibili singolarmente.