Arduino Uno: Linux su ATmega328!

Nell’ambiente dei microcontrollori, ci sono alcune domande ricorrenti, come “Riuscirà a eseguire Doom?” o “Riuscirà a eseguire Linux?”. Recentemente, un’impresa sorprendente è stata portata a termine: gvl610 è riuscito a far avviare un kernel Linux aggiornato su un comune Arduino Uno. E sì, stai leggendo bene: parliamo di un kernel Linux completo, non della versione ridotta μClinux specifica per microcontrollori.

Gli appassionati di elettronica e programmazione, soprattutto quelli con qualche anno di esperienza alle spalle, potrebbero già intuire come è stato possibile. L’ATmega328 presente sull’Arduino Uno non dispone di MMU ed è chiaramente non abbastanza potente per un compito del genere. La soluzione? Un emulatore. In questo caso, è stato utilizzato un emulatore RISC-V, sufficientemente valido per la missione. Come potete immaginare, il risultato non brilla per velocità.

Il codice, scritto in puro AVR C, è disponibile online e sono fornite anche istruzioni dettagliate per la compilazione. Per quanto riguarda la memoria, è stata utilizzata una scheda SD, poiché i 32k dell’ATmega sono decisamente insufficienti per ospitare un sistema operativo come Linux.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Main Menu