RTOS für Cortex M4 mit 802.15.4 / 6LoWPAN-Stack


8

Ich evaluiere Betriebssysteme für ein Internet of Things-Projekt und weiß nicht, wie ich am besten vorgehen soll.

Ich verwende eine TM4C123GH6PM-MCU mit 32 KB RAM und einem CC2520 802.15.4-Transceiver. Es wäre großartig, wenn das System bereits Treiber für diese bereitstellen würde.

Das System führt eine (interaktive) Aufgabe aus, die einen Punktmatrix-Bildschirm zeichnet und auf Benutzereingaben reagiert. Es speichert Konfigurations- und Anwendungsdaten auf SPI Flash. Es wird ein Netz von mehreren Modulen (basierend auf 802.15.4) geben, um Daten zwischen den Modulen zu synchronisieren, Sensordaten aus den Modulen zu extrahieren und sie an ein Gateway weiterzuleiten (rpl fällt mir ein) und OtA-Firmware-Updates in einem Klatsch zu verteilen. wie Mode. Währenddessen wird auch eine eher speicherhungrige Anwendung ausgeführt.

Bisher habe ich mich mit diesen Systemen befasst:


Aufstand :

Profis

  • gute Hardware-Abstraktion
  • kleiner Fußabdruck
  • sehr aktive und hilfreiche Community
  • vollständiger 802.15.4 / 6LoWPAN-Stapel

Nachteile

  • instabil, immer noch grundlegend verändert
  • enthält noch Rennbedingungen / Stürze
  • Keine Dateisystemunterstützung
  • wenige Netzwerkprotokolle

Contiki :

Profis

  • ausgereiftes System, das in kommerziellen Produkten verwendet wird
  • vollständiger 802.15.4 / 6LoWPAN-Stack mit vielen nützlichen Protokollen
  • Dateisystemunterstützung
  • cc2520 Unterstützung

Nachteile

  • Entwicklung ist abgestanden
  • 'gewachsene' Codebasis, viel Bitfäule
  • schlechte Qualität tiva c Port
  • wenig Unterstützung für moderne Plattformen
  • Eine nicht vorbeugende Planung kann Probleme mit der Anwendung verursachen

FreeRTOS :

Profis

  • wenig zusätzliche Komplexität
  • einfach zu bedienender, zuverlässiger Scheduler
  • ausgereiftes Projekt, in vielen Produkten verwendet
  • viele Häfen

Nachteile

  • kein Dateisystem
  • Keine Hardwareabstraktion für Treiber / keine Hardwaretreiber
  • kein Netzwerkstapel
  • etwas hohe Auslastung des dynamischen Speichers

NuttX :

Profis

  • Sehr funktionsreich, fühlt sich fast wie Linux an und ist dennoch klein
  • Dateisystemunterstützung
  • gute Hardware-Abstraktion
  • Tiva C Port, viele andere Ports

Nachteile

  • etwas komplex
  • Keine Unterstützung für 802.15.4 / 6LoWPAN, nur 'klassischer' Netstack

Mein Fazit wäre, die guten Teile von Contiki (den Netstack, das Dateisystem) zu nehmen und sie auf FreeRTOS zu portieren. Aber mit einer solchen Gabel fühle ich mich nicht ganz wohl. Ich würde wahrscheinlich Fehler hinzufügen und keine Upstream-Fixes zurückportieren können. Außerdem muss ich noch meine eigene Hardware-Abstraktion erfinden, um die MCU in Zukunft wechseln zu können. Also würde ich mein eigenes Betriebssystem für etwas haben, das wie ein Problem erscheint, das auch viele andere Leute haben sollten - hat das noch niemand gemacht? (Ich meine, ich habe etwas gefunden, aber die Idee , das gesamte Contiki-OS als FreeRTOS-Aufgabe auszuführen, macht mich unangenehm)

Fehlt mir etwas? Vielleicht lohnt sich der Schmerz und ich sollte versuchen, Contiki stattdessen auf meiner Hardware in einen funktionsfähigen Zustand zu versetzen? Oder gibt es ein anderes System, das ich vermisst habe und das meine Probleme lösen würde?

Ich bin mir auch nicht sicher, ob ich 6lowPan überhaupt brauche, aber wenn das bedeutet, auf vorhandenen Protokollen aufbauen zu können / mit anderen Systemen (z. B. Linux) kompatibel zu sein, wäre ich bereit, den zusätzlichen Aufwand zu übernehmen.


1
running the entire contiki-os as a FreeRTOS task makes me uncomfortableDas ist nur ... wow!
Daran

Antworten:


2

Wenn Sie nicht mit diesem bestimmten Prozessor verheiratet sind (oder den Code ohnehin kopieren / einfügen können), verwende ich häufig Freescale-MCUs mit CodeWarrior und Processor Expert. PEX enthält eine Reihe von Komponenten, einschließlich FreeRTOS, MQX, FAT usw. Zusätzliche Komponenten können heruntergeladen werden. Letztendlich handelt es sich nur um einen GUI-basierten Codegenerator, sodass Sie den resultierenden C-Code wie vorgeschlagen kopieren / einfügen können in Ihr Projekt.

Bearbeiten:

-MQX enthält IP-Stack

-FNET

Großes vorkompiliertes Paket mit vielen nützlichen Komponenten: http://sourceforge.net/projects/mcuoneclipse/files/PEx%20Components/


1

Sie vermissen mbed OS : Geben Sie hier die Bildbeschreibung ein

Profis

  • direkt unterstützt (beworben) vom Core Designer - ARM Ltd.

Nachteile

  • Die erste stabile Veröffentlichung wird (voraussichtlich) erst im November 15 erwartet: -]

1

Wenn dies für den kommerziellen Gebrauch ist, empfehle ich Ihnen dringend, sich die nicht freien Optionen anzusehen. Support ist alles. Wenn es sich um ein persönliches Projekt handelt, kann ich das verstehen.

Ja, es sind Kosten verbunden, aber bei einigen RTOS-Entwicklern ist es gar nicht so groß, sie verdienen wirklich Geld mit kundenspezifischer Entwicklung und Lizenzen können kostenlos sein, bis Sie einen Verkauf tätigen. Unten finden Sie einen Link zu einem Artikel, in dem einige bezahlte Wettbewerber verglichen werden:

Vergleich von Echtzeit-Betriebssystemen von Mikrocontrollern

Ich bin ein Projektmanager, und wir sind von ST-Treibern zu Unison gewechselt. IIRC, die Lizenzierung war überraschend klein, und wir erhielten eine "vollständige Testversion", bis wir überzeugt waren, aber konsequente direkte Unterstützung hat uns über den Rand gedrängt und unsere Entwicklung wirklich beschleunigt. Ich denke, sie haben bereits Unterstützung für verschiedene TI-Funkchips, nicht sicher über CC2520.

Der Typ, der den größten Teil des Verkaufs tätigt, ist wirklich persönlich und listet die Preise aus zwei Gründen nicht auf. Mir wurde gesagt, 1) weil er hören möchte, was Sie brauchen, er möchte wirklich wiederkehrende Kunden und Mundpropaganda-Referenzen. und 2) Wettbewerb.

Zu Ihrer Information, Unisons Website ist wirklich schlecht.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.