Scrivi;
"Gran parte del codice scritto per i microcontrollori ruota attorno alla scrittura di valori di configurazione e dati nei registri, nella lettura dei dati in arrivo dai registri e nella risposta agli eventi di interrupt".
Sono d'accordo che questo è spesso il caso nella pratica, ma in realtà non penso che sia una buona cosa, e penso che ripensare un po 'le cose ti aiuterà con i tuoi obiettivi di test.
Forse perché i programmatori di microcontrollori possono raggiungere e toccare l'hardware ogni volta che vogliono, molti (la maggior parte?) Di loro hanno preso l'abitudine di fare proprio questo, attraverso il loro codice. Spesso questa abitudine viene seguita senza discussioni, forse perché così tante persone che fanno questo tipo di lavoro sono EE, non scienziati informatici con la formazione e l'inclinazione. Lo so, sono partito da me in questo modo.
Il punto che sto cercando di fare, è che i progetti di microcontrollore possono e devono essere ben progettati come qualsiasi altro progetto software. Una parte molto importante del buon design consiste nel limitare l'accesso hardware ai driver hardware! Separa tutto il codice che scrive registri, risponde agli interrupt, ecc. In moduli che forniscono al resto del tuo software un accesso piacevole, pulito e astratto all'hardware. Testare i moduli del driver sul bersaglio usando analizzatori di stati logici, oscilloscopi, banchi di prova personalizzati o qualsiasi altra cosa che abbia senso.
Un punto davvero importante è che ora il resto del software, si spera che la maggior parte di esso, sia ora solo codice C che è possibile eseguire e testare su un sistema host. Sul sistema host i moduli hardware vengono estrapolati in modo da fornire visibilità su ciò che sta facendo il codice sotto test. È possibile utilizzare gli approcci di test unitari mainstream su questo codice. Ciò richiede alcuni preparativi e lavoro, ma se sei ben organizzato puoi creare un sistema riutilizzabile che possa essere applicato a tutti i tuoi progetti. I potenziali benefici sono enormi. Ho scritto un po 'di più su queste idee qui;
[http://discuss.joelonsoftware.com/default.asp?joel.3.530964.12][1]
fonte
2009-06-06 03:09:32
Potrebbe qualcuno con rep sufficiente si prega di aggiungere il tag "embedded" a questa domanda? Grazie. –