Molto molto bello, complimenti!
p.s.
perdona la curiosita', cosa usate esattamente ?
Centra si e no, nel mio caso misuro la distanza di Hamming, perche' ho due apparati ridondati e confronto quanto siano uguali alcune zone della loro memoria (che per definizione di ridondato deve essere identica, altrimenti uno dei due e' in avaria o ha avuto problemi e la cosa va approfondita e gestita), dato che fare reboot dell'apparato in volo, al primo errore che incontra, costa ed e' rischioso (anche in termini di probabilita' di fallimento missione) prima di dicidere di dare il reboot (ultima spiaggia) interessa fare una misura precisa per la differenza fra due buffer, che sono strutturati in modo furbo, cioe' in modo che si possa capire quale dei due apparati sta sbagliando e cercare di correggere l'errore senza dover fare reboot, dato che interessa la misura per la differenza fra due chunk di dati sfrutto una matrice levenshteiniana nbyte x nbyte con dei trucchetti iterativi per ridurre le dimensioni di quella matrice senza scadere in consumi eccessivi di tempo (come si sa, la coperta e' sempre corta, o sprechi spazio e risparmi tempo, o sprechi tempo e risparmi spazio, nel mezzo i compromessi)
Mi sono occupato per un po' di avionica, nel mio caso per le centraline di aerei ed elicotteri (civili, ma anche militari) l'hw era schermato, e al lato firmware ci sincervamo dello stato dell'hw facndo dei PBIT e dei CBIT, i primi stanno per PowerOn Built In Tests, i secondi per Continuously Built In Tests, in pratica test pesantissimi quando, per dirla come se fosse banale come una automobile, quando si gira la chiave per mettere in moto l'aereomobile, prima di dare l'OK il mezzo fa fare tutta una serie di test a tappeto su tutte le sue componenti hw, l'altra batteria di test invece era implementata in un paio di task eseguiti con priorita' bassa dal Kernel avionico che schedula la cosa a tutti i moduli ciclicamente.
Quando i progetti sono militari vengono spezzati in una serie di sotto sotto progetti in modo che nessuno (eccetto pochi pochissimi eletti, e ovviamente il committente) abbia la visione dell'insieme. Io non ho la piu' pallida idea dei moduli sviluppati dagli altri, conosco solo le loro interfacce pubbliche e le conosco solo se qualche loro requisito riguarda anche la mia parte. In pratica Io mi sono occupato solo di un piccolo modulo telemetrico + tactical mission (classico da elicottero militare), e dal mio piccolo punto di vista il processore era un PPC440/460 con attaccato un modulo 1353 per parlare con armamenti e sensoristica varia (sopratutto per i controlli rotori), e dovevo in pratica, per la parte che toccava a me, fare test su tutto l'hw della mia board: cioe' principalmente sulla cpu, perche' il resto era in fpga (codice a me ignoto) e provedeva da se a fare test, bastava invocarli e leggerne il risultato. Per la CPU ho dovuto inventarmi modi "fantasiosi" per testare la ALU, i salti, le TLB, ecc ecc tutto quanto, sopratutto in negativo causando volontariamente delle exception per vedere se la CPU era ancora in grado di gestirle e sopratutto in quanto tempo.
Voi (e beati voi che potete vedere il progetto nella sua totalita') come vi regolate ?