RTOS per Cortex M4 con stack 802.15.4 / 6LoWPAN


8

Sto valutando i sistemi operativi da utilizzare in un progetto Internet of Things e non so quale sia il modo migliore di procedere.

Sto usando un MCU TM4C123GH6PM con 32k RAM e un ricetrasmettitore CC2520 802.15.4, sarebbe bello se il sistema già fornito driver per quelli.

Il sistema eseguirà un'attività (interattiva) che disegna una schermata dotmatrix e reagisce all'input dell'utente. Memorizzerà i dati di configurazione e delle applicazioni su spi flash. Ci sarà una rete di più moduli (basati su 802.15.4) per sincronizzare i dati tra i moduli, estrarre i dati dei sensori dai moduli e inoltrarli a un gateway (rpl viene in mente) e distribuire anche gli aggiornamenti del firmware OtA in un gossip- come la moda. Tutto mentre si esegue anche un'applicazione piuttosto affamata di memoria.

Finora ho esaminato questi sistemi:


RIOT :

professionisti

  • buona astrazione hardware
  • piccola impronta
  • comunità molto attiva e utile
  • stack 802.15.4 / 6LoWPAN completo

cons

  • instabile, ancora soggetto a cambiamenti fondamentali
  • contiene ancora condizioni di gara / incidenti
  • nessun supporto per filesystem
  • alcuni protocolli di rete

Contiki :

professionisti

  • sistema maturo, utilizzato nei prodotti commerciali
  • stack 802.15.4 / 6LoWPAN completo con molti protocolli utili
  • supporto del file system
  • supporto cc2520

cons

  • lo sviluppo è diventato stantio
  • base di codice "cresciuta", molto marcio bit
  • porta tiva c di cattiva qualità
  • scarso supporto per piattaforme moderne
  • la pianificazione non preventiva potrebbe causare problemi con l'applicazione

FreeRTOS :

professionisti

  • poca complessità aggiuntiva
  • programmatore facile da usare e affidabile
  • progetto maturo, utilizzato in molti prodotti
  • molte porte

cons

  • nessun file system
  • nessuna astrazione hardware per driver / nessun driver hardware
  • nessuno stack di rete
  • uso piuttosto elevato della memoria dinamica

NuttX :

professionisti

  • molto ricco di funzionalità, sembra quasi Linux, ma ancora piccolo
  • supporto del file system
  • buona astrazione hardware
  • Porta Tiva C, molte altre porte

cons

  • piuttosto complesso
  • nessun supporto per 802.15.4 / 6LoWPAN, solo netstack 'classico'

La mia conclusione sarebbe quella di prendere le parti buone di Contiki (il netstack, il file system) e portarle su FreeRTOS. Ma non mi sento completamente a mio agio con una forchetta del genere. Probabilmente aggiungerei errori e non sarei in grado di eseguire il backport delle correzioni a monte, inoltre devo ancora inventare la mia astrazione hardware per poter cambiare l'MCU in futuro. Quindi finirei con il mio sistema operativo per qualcosa che sembra un problema che dovrebbe avere anche molte altre persone - qualcuno non l'ha mai fatto prima? (Voglio dire, ho trovato qualcosa, ma l'idea di eseguire l'intero contiki-os come attività FreeRTOS mi mette a disagio)

C'è qualcosa che mi manca? Forse ne varrebbe la pena e dovrei provare a riportare Contiki su uno stato funzionale sul mio hardware? O c'è un altro sistema che mi è sfuggito che potrebbe risolvere i miei problemi?

Inoltre non sono sicuro di aver bisogno di 6lowPan, ma quando ciò significa essere in grado di basarsi su protocolli esistenti / essere compatibile con altri sistemi (ad esempio Linux), sarei disposto a prendere l'overhead aggiuntivo.


1
running the entire contiki-os as a FreeRTOS task makes me uncomfortableQuesto è solo .. wow! Non ci avrei mai pensato ...
m.,

Risposte:


2

Se non sei sposato con quel processore specifico (o sei abbastanza esperto da copiare / incollare comunque il codice), utilizzo frequentemente MCU Freescale con CodeWarrior e Processor Expert. PEX include una serie di componenti tra cui FreeRTOS, MQX, FAT, ecc. È possibile scaricare componenti aggiuntivi e, alla fine, è solo un generatore di codice basato su GUI, quindi, come suggerito, è possibile copiare / incollare il codice C risultante nel tuo progetto.

Modificare:

-MQX include stack IP

-FNET

Ampio pacchetto precompilato di molti componenti utili: http://sourceforge.net/projects/mcuoneclipse/files/PEx%20Components/


1

Ti manca il sistema operativo mbed : inserisci qui la descrizione dell'immagine

professionisti

  • supportato direttamente (promosso) dal core designer - ARM Ltd.

cons

  • la sua prima versione stabile è prevista (prevista) solo a Nov'15: -]

1

Se questo è per uso commerciale, ti consiglio vivamente di guardare le opzioni non gratuite, il supporto è tutto, se è un progetto personale, allora posso capire.

Sì, ci sono costi, ma con alcuni sviluppatori RTOS, non è poi così grande, ci fanno davvero soldi con lo sviluppo personalizzato e le licenze possono essere gratuite fino a quando non si effettua una vendita. Di seguito è riportato un collegamento a un articolo che confronta alcuni concorrenti pagati:

Confronto tra i sistemi operativi in ​​tempo reale del microcontrollore

Sono un project manager e siamo passati dall'utilizzo dei driver offerti da ST a Unison. IIRC, le licenze erano sorprendentemente piccole e abbiamo ottenuto un "processo completo" fino a quando non ci siamo convinti, ma un supporto diretto coerente è stato ciò che ci ha spinto oltre il limite e ciò che realmente aiuta ad accelerare il nostro sviluppo. Penso che abbiano già il supporto per vari chip wireless TI, non sono sicuro di CC2520.

Il ragazzo che fa la maggior parte delle vendite è davvero personalizzabile e non elenca i prezzi per due motivi, mi viene detto 1) perché vogliono sentire quello che ti serve, vogliono davvero clienti di ritorno e riferimenti passaparola, e 2) concorrenza.

Cordiali saluti, il sito Web di Unison è davvero pessimo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.