Amber board, gestione GPIO.

Click Here to Read the English version.

Una delle esigenze più comuni degli sviluppatori che realizzano un apparati elettronici è quella di gestire le uscite e gli ingressi digitali per attivare interruttori, acquisire lo stato di uno o più pulsanti o in generale interagire con altre periferiche per mezzo delle linee digitali d I/O (GPIO) messe a disposizione dai dispositivi utilizzati. Controllare da codice lo stato o il livello di un pin del microprocessore è una delle prime cose che si imparano quando si lavora con il codice e credo che la quasi totalità degli sviluppatori abbia almeno una volta nella loro vita realizzato il classico progetto del LED che lampeggia o della classica sequenza di luci che si accende in modalità “super-car”.
Quando si lavora con il firmware è infatti abbastanza semplice scrivere o leggere lo stato di un pin del proprio dispositivo; per compiere questa semplice operazione, il più delle volte è sufficiente scrivere o leggere un bit nel registro di I/O dedicato o aspettare lo scatenarsi del relativo interrupt se opportunamente configurato.
Cosa succede e nel nostro sistema gira un sistema operativo evoluto tipo Linux?
Possiamo ancora accedere alle linee di I/O della nostra CPU direttamente dalla nostra applicazione utente?
La risposta è ovviamente affermativa anche se la modalità può dipende dal sistema che stiamo utilizzando e dalla sua configurazione. In generale possiamo controllare e accedere allo stato dei GPIO ma dobbiamo farlo con metodologie diverse da quelle seguite nella programmazione di basso livello e con le regole e le limitazioni imposte dal sistema operativo.
Continua a leggere

GStreamer il Framework multimediale Audio/Video

gstremareIco

GStreamer è un insieme di di librerie, tools e plug-ins grazie ai quali è possibile manipolare e trattare una moltitudine di formati audio e video con una discreta semplicità.
Molti dei player multimediali o editor video inclusi nelle principali distribuzioni linux ( Totem Player  o  PiTiVi ad esempio) utilizzano questo framework per la riproduzione e la manipolazione dei  filmati e dei file audio.
In questo post propongo una serie di esperienze e di test per i più curiosi e gli smanettoni del codice, e cercherò di dare una spiegazione di massima della filosofia e dei componenti principali di questo framework.

Continua a leggere