Modelli di progettazione visti frequentemente nella programmazione di sistemi embedded [chiuso]

3

Non ho alcuna domanda relativa alla codifica. Le mie preoccupazioni riguardano la programmazione di sistemi embedded indipendentemente da un particolare linguaggio di programmazione.

Dato che sono nuovo nel campo della programmazione embedded, apprezzerei molto le risposte di coloro che si considerano esperti di sistemi embedded.

In pratica ho 2 domande.

  1. Tra i modelli di progettazione elencati di seguito si vedono spesso nella programmazione di sistemi embedded?

    • Modello di occorrenza / occorrenza
    • Schema gerarchia generale
    • Modello giocatore-ruolo
    • Modello Singleton
    • Modello di osservatore
    • Modello di delega
    • Modello adattatore
    • Modello di facciata
    • Modello immutabile
    • Modello di interfaccia di sola lettura
    • Modello proxy
  2. In qualità di sviluppatore incorporato esperto, quali modelli di progettazione hai, come individuo, incontrato? Non è necessario descrivere i dettagli. Solo i nomi dei pattern sarebbero sufficienti. Per favore condividi la tua esperienza.

Credo che le risposte alle domande precedenti funzionerebbero come un buon punto di partenza per qualsiasi programmatore principiante nel mondo embedded.

    
posta softwarelover 07.10.2012 - 07:12
fonte

1 risposta

3

Crescono i sistemi incorporati, aspettati un ampio supporto di modelli

Dato che i sistemi incorporati iniziano ad avere più memoria e processore disponibili e passano dal bare metal, ai kernel in tempo reale, alle versioni embedded di Linux e Windows o persino ad Android, sospetto che prenderanno tutti questi schemi e Di Più.

Fattori di limitazione del pattern

Non sei sicuro di come creare una tabella, ma la tua lista potrebbe essere valutata per essere implementata su bare metal, con un RTK o con un sistema operativo. Potrebbero esserci variazioni dipendenti dai linguaggi del computer, con l'assemblatore o il C ++ incorporato potenzialmente restrittivo, C privo dell'orientamento agli oggetti per facilitare alcuni schemi e C ++ (o le sue caratteristiche) che non sono disponibili o vietati dagli standard di codifica come MISRA .

Coding Standard e Real-Time Interaction with Patterns

Alcuni progetti di sistemi embedded vietano l'uso della memoria dinamica. Ciò mette un vero freno su alcuni dei modelli. Altri possono ferire o aiutare con la quantità di memoria richiesta. L'uso di tecniche di codice gestito può introdurre latenze indesiderate durante la procedura di Garbage Collection.

Modelli come punto di partenza?

I believe the answers to the above questions would work as a good starting point for any novice programmers in the embedded world.

Penso che questa affermazione sia un po 'saltata. I pattern sono una sorta di meta-concetto e non sostituiscono dettagli inattivi o sporchi come le mappe della memoria, la programmazione di dispositivi periferici come timer, uarts, SPI, I2C, ATOD / DTOA, PWM, ecc. O la creazione di routine di servizi di interrupt. Se si utilizza un sistema operativo, è necessario un qualche tipo di pacchetto di supporto della scheda. Se si utilizza COTS, è necessario valutare quali prodotti.

Se stai facendo hardware personalizzato, c'è interazione con gli ingegneri elettrici e alcuni corsi di formazione per far fronte agli schemi di lettura e alla lettura (o forse alla scrittura) di schede tecniche e documenti di teoria delle operazioni. Utilizzo di apparecchiature di prova come oscilloscopi, analizzatori logici, JTAG o emulatori in-circuit e strumenti di sviluppo incrociato basati su IDE da Windows, Linux o persino Mac.

Sistemi integrati nello scambio di stack?

C'era un sito Embedded Systems per Stack Exchange che si trovava nella fase di Impegno in Area 51. Era chiuso a causa di un limite di tempo di due anni. Esistono diverse proposte correlate incorporate tra cui una versione beta di Raspberry Pi, una BeagleBoard con due follower e una proposta Arduino chiusa.

link

C'è una procedura per riaprire o riproporre un sito. Se qualcuno ce l'ha, proviamo.

    
risposta data 07.10.2012 - 09:55
fonte

Leggi altre domande sui tag