Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Alcuni suggerimenti per facilitare il debug dei sistemi embedded
Scritto da Alessandro Piccarolo il 26-11-2010 ore 09:33
Il debug dei sistemi embedded continua a rappresentare una delle fasi più complesse per gli sviluppatori, che lavorano con questa tipologia di sistemi. In particolare, è proprio la caratteristica della stretta connessione esistente tra la parte hardware e la parte software che rende il debug dei sistemi embedded un compito da affrontare in maniera congiunta, a partire già dalla fase di progettazione del sistema stesso.

Un interessante articolo pubblicato su EETimes, di Jack Ganssle, uno dei più esperti sviluppatori e divulgatori in ambito embedded, e di Ken Arnold propone numerosi suggerimenti da adottare per semplificare il debug dei sistemi embedded, a partire dal livello hardware per arrivare al livello software.

Il primo aspetto a cui prestare attenzione è rappresentato dalla diagnostica. Poiché, normalmente, nei sistemi embedded non sono presenti dei terminali video sui quali stampare opportuni messaggi che permettono di capire il punto di esecuzione del codice, ecco come diventi fondamentale prevedere dei dispositivi hardware (LED, porte I/O, registri, ecc.) che possano essere utilizzati dal software per indicare opportuni stati. Un esempio classico è rappresentato da un led che lampeggia (heart-beat) per identificare il corretto funzionamento del sistema.

Altro aspetto importante è rappresentato dalla connessione di strumenti esterni, quali In-circuit emulator[/ur], analizzatori di stati logici, ecc. Il progetto hardware dovrebbe essere pensato per facilitare la connessione di tali strumenti, tenendo conto dello spazio disponibile sulla scheda e prevedendo opportuni test point dai quali osservare i segnali di interesse.

Sempre nell’ottica del debug, è fondamentale pensare correttamente all’utilizzo delle porte. Idealmente, si dovrebbe poter accedere in lettura a tutti i pin delle porte, ma è anche importante gestire correttamente i livelli sulle porte (tramite opportuni resistori di pull-up) e soprattutto non lasciare alcun pin flottante, o non connesso, al fine di evitare transizioni di livello spurie e non controllate.

Quindi, è sempre utile prevedere una serie di accorgimenti nell’ottica del ripristino da guasti (o fault tolerance). Tali accorgimenti dipendono ovviamente dal tipo di dispositivo per il quale si vuole realizzare un recovery automatico, e consistono ad esempio nell’utilizzo di checksum e CRC per verificare l’integrità dei dati, di watchdog per controllare che il sistema lavori correttamente, ecc.

Infine, l’articolo propone tutta una serie di suggerimenti più strettamente legati alla realizzazione dell’hardware, al fine di evitare, o quanto meno limitare, gli effetti di capacità parassite, compatibilità elettromagnetica (EMC) e di scariche elettrostatiche (ESD), sempre seguendo la filosofia secondo la quale un buon progetto funziona, un ottimo progetto è anche facile da debuggare.
Precedente: OrCAD, un software per l'elettronica: creare gli schemi con Capture (4/5)
Successiva: Technical Support Essentials
Copyright Programmazione.it™ 1999-2014. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.186 secondi.