Un libro su GNU/Linux embedded

Image credit: Raspberry Pi Foundation

Un libro su GNU/Linux embedded

Per svariati motivi, lavorativi e non, sto valutando la possibilità di prendere tutte le mie vecchie presentazioni tenute ai vari LinuxDay, LinuxCafé e lezioni universitarie, aggiornare le parti vecchie e scrivere un libretto su GNU/Linux embedded.

L’idea nasce dal fatto che ci sono un sacco di programmatori software embedded, tutti con esperienza su microcontrollori, ma i programmatori esperti di GNU/Linux embedded sono rari. Sia con i colleghi che con persone che incontro nel tempo libero mi ritrovo relativamente spesso a discutere se ci sono dei libri su GNU/Linux embedded, per permettere ad un programmatore con esperienza di C e C++ sui microcontrollori di essere rapidamente operativo anche su sistemi a microprocessore con GNU/Linux. La mia risposta è che in generale un libro non c’è, di solito io suggerisco una mia lista di libri che compongono un adeguato bagaglio culturale, ma che non compongono un percorso formativo esaustivo:

La lista è lunga, i tomi sono tutti molto pesanti e danno una buona preparazione teorica ma ancora non sono sufficienti a rendere un programmatore operativo.

Esistono già diversi libri su Yocto, per esempio:

Tutti questi libri sono molto focalizzati sull’uso di Yocto, ma perdono di vista una serie di problemi concreti nello sviluppo di prodotti.

Per questo motivo avrei un mente il seguente sommario:

  • Prima parte - organizzazione dello sviluppo su PC
    1. Uso di CMake per compilare e crosscompilare i progetti
    2. Come strutturare un progetto
  • Seconda parte - portare il progetto sul target embedded
    1. Introduzione a Yocto
    2. Portare il progetto sul target e debug
  • Parte terza - argomenti avanzati
    1. Realtime su GNU/Linux embedded
    2. Strategie di firmware upgrade

Un simile libro, per essere digerito rapidamente e non essere l’ennesimo mattone che allunga la lista iniziale, deve essere pensato in accoppiata con una scheda opensource, come per esempio la BeagleBone o la Raspberry. Il costo dei dispositivi è simile, e per ciascuna scheda sono disponibili capes ed hats.

La mia idea consiste nello sviluppare un piccolo progetto basato su GNU/Linux embedded, sviluppando gli argomenti esposti nel sommario. Il maggior problema che vedo attualmente è la definizione di una applicazione che non sia in conflitto con il mio lavoro ma che allo stesso tempo sia sufficientemente interessante.

Per ora, l’unico scenario di progetto che potrei proporre è il seguente:

sequenceDiagram PC->> Raspberry: REST API Raspberry->> Ricevitore Dali: Protocollo Dali Ricevitore Dali--> LED: Potenza

Il problema più fastidioso è che il protocollo Dali si basa su una seriale differenziale optoisolata con tensioni più elevate della RS485 e non c’è nessun cape o hat che la implementi. Il che è un peccato, perché Dali è un protocollo semplice e che ben si presta alla didattica.

Mi piacerebbe ricevere qualche feedback, sia sulla lista degli argomenti che sullo scenario applicativo. Vi va di lasciare un commento?

comments powered by Disqus