2010-04-16 9 views
5

Sto scrivendo applicazioni embedded per hardware diversi (avr, arm7, tms55xx ...) e diverse rtose (freeRTOS, rtx, dsp/bios). E ogni secondo di loro ha bisogno di comunicare con il PC o un altro dispositivo digitale. A volte la logica delle interazioni è molto avanzata. Quindi sono interessante nella metodologia comune (come lo stile di programmazione a macchina di stato), nella specifica del protocollo o nella libreria, che potrebbe semplificare lo sviluppo di queste cose.Esistono analoghi leggeri a CORBA/RPC per programmi incorporati?

risposta

6

Sono stato molto contento di google protocol buffers su sistemi embedded sia per il trasferimento di dati che per i meccanismi RPC. Sono un po 'più leggeri dei sistemi basati su XML poiché i dati trasmessi sono codificati in binario e la decodifica dei dati inviati richiede un'elaborazione minima che è un grande vantaggio sull'utilizzo della CPU sul lato incorporato del collegamento.

Esistono librerie prontamente disponibili per varie lingue, ma soprattutto C per le app integrate.

+0

Potete raccomandare eventuali implementazioni particolari per C embedded? –

+0

http://code.google.com/p/protobuf-c/ – Mark

1

Here è un articolo su Embedded.com su CORBA su sistemi embedded e implementazioni "leggere" o minime. Le soluzioni commerciali citate sono per QNX, VxWorks e LynxOS. E another article su RPC su Embedded.com (questo è stato creato da un istruttore DSP di TI e fa riferimento specifico a DSP, quindi potrebbe essere rilevante per DSP/BIOS).

Si consiglia vivamente di utilizzare la ricerca di articoli di Embedded.com, ci sono probabilmente molti articoli simili che troverete utili.

VxWorks supports RPC, così come QNX Neutrino.

"Roll your own" è sempre stata la mia soluzione in cui la conformità agli standard e la compatibilità tra sistemi non sono un problema (ad esempio i miei sistemi che parlano ai miei sistemi). Fare solo esattamente quello di cui hai bisogno è il modo migliore per ottenere "leggero", forse a scapito della flessibilità e della manutenibilità.

+0

Ho letto questi articoli. CORBA è inteso per interazioni molto più avanzate rispetto ai miei programmi. Il protocollo RPC dal motore codec di TI è abbastanza leggero, ma molto specifico e non adatto alle mie applicazioni. – Mtr

0

I protocolli sono adatti per macchine a stati, quindi forse è possibile utilizzare i framework di macchine di stato QP molto leggeri e open source (state-machine.com). Le porte QP pronte all'uso e gli esempi per vari compilatori sono disponibili per AVR, MSP430, ARM7/ARM9, TMS320C28x, PSoC, HC08, M16C/R8C, H8, 8051, PIC18, PIC24/dsPIC, ARM Cortex-M3/M0 e molti altri.

Nota: Lavoro per http://state-machine.com

+0

Non proprio spam. Tuttavia, Miro, non usiamo firme su SO. Ho modificato la tua risposta per mostrare un modo per ottenere le stesse informazioni. Vado anche a svalutare la risposta perché non penso che affronti direttamente la domanda. –

+0

Sì, era mia intenzione indicare che lavoro per state-machine.com. –

2

OpenJAUS.

È riflettente, componibile e standardizzato (ish) Works cross-language-cross-platform.

Fornisce molto più framework di Protocol Buffers (che è uno stack di messaggistica pulito) È focalizzato sulla robotica, ma funziona per i sistemi di controllo.

In teoria un'interfaccia utente JAUS può far funzionare qualsiasi dispositivo compatibile con JAUS e i sistemi JAUS sono progettati per comporre in un sistema di sistemi.

Se queste cose non hanno senso, si prega di ignorare questo suggerimento.

Problemi correlati