Hallo Leute Wer verwendet welches RTOS für den STM32F4 (-Discovery), bzw. was würdet ihr empfehlen? Insbesondere welche Erfahrungen wurden gemacht bezüglich: - Stabilität/Zuverlässigkeit/Bugs (auch für komplexe Projekte) - Footprint, Resourcbelegung - Effizients/Geschwindigkeit - Einfachheit/Übersichtlichkeit/Dokumentation - FPU-Unterstützung? Für meine private Projekte soll vorzugsweise Gratis-SW verwendet werden, und für den GCC-ARM (Eclipse-IDE) compilierbar sein Bisher habe ich etwas mit CoOS (CooCox) gespielt, es scheint mir aber nicht wirklich ausgereift. Ich vermute Probleme mit der Stackverwaltung (besonders wenn man etwas mehr Stack pro Task verwenden möchte >2kByte, zudem wird es nicht weitergepflegt, bzw. es gab kein Update mehr seit Juni 2012. Zur Zeit habe ich ChibiOS und FreeRtos im Visier. Wer kann darüber (oder andere Alternativen) etwas Berichten?
Ich verwende seit zwei Jahren eCos auf STM32F103 und seit kurzem auf dem STM32F407. Das Betriebssystem ist lange gewachsen, extrem konfigurierbar und unterstützt sehr viele Plattformen. Ich bin schwer begeistert davon und gebe eCos in deinen KPIs gute Noten, aber der Einstieg ist recht komplex.
Ich verwende FreeRtos auf dem stm32F407 in Coocox. Das System ist sehr einfach einzubinden und gut dokumentiert. Es gibt auch ein Buch von Freertos wo alles genau erklärt wird.
NuttX unterstützt das Discovery schon über ein Jahr :-) -> www.nuttx.org
Ich verwende scmRtos - sehr einfach gehalten - kann ohne Klimmzüge mit C++ benutzt werden
Ich verwende auch das NuttX mit dem STM32F4. Den größten Vorteil sehe ich darin, daß die Schnittstelle zwischen RTOS und Deinem Programm weitgehend POSIX-kompatibel ist. Wenn Du also schon etwas Erfahrung mit der Programmierung unter Linux (oder anderen Unixen) hast, geht der Einstieg sehr einfach von der Hand weil Du die ganzen Schnittstellen und deren Verhalten/Besonderheiten schon kennst. Auch lassen sich Linux-Programme so leichter rüberportieren. Natürlich gibts auch ne Shell auf dem Teil, das finde ich fürs Debuggen ziemlich praktisch.
Danke für die Feedbacks, man hat die Qual der Wahl! RTX ist vermutlich nicht frei, bzw erhält man nur mit dem Kauf der Keil IDE. eCOS klingt interresant, es gibt sogar einen Port für den Discovery! Aber nur mal zum angucken ist der Aufwand schon recht gross, habe keine Lust mir erst einen CVS-Client einzurichten nur um mir die Discovery-Demo runterzuladen. Zudem ist das arpeiten mit Cygwin immer recht buckelig, ich möchte den native Win32 ARM-GCC verwenden, mit Eclipse oder CooCoox als IDE. => Hätte jemand ein kleines Demo-Projekt als Zip-File bereit? NuttX ist auch schon recht umfangreich/komplex, bietet aber vieles was mir sehr willkommen ist. -TCP/IP-Stack -Filesystem -Shell -Posix (vxWorks/Linux-ähnlich) => Hätte jemand ein kleines Demo-Projekt als Zip-File bereit?
Hi, Uwe hat auf seiner Seite gerade ein Beispielprojekt hochgeladen 73-FreeRTOS-Library (STM32F4) http://mikrocontroller.bplaced.net/wordpress/?page_id=3396
Hi,
hier ein für das STM32F4 gebautes eCos, das du in ein beliebiges Projekt
einbinden kannst.
Kopiere in deine "main.cpp" oder .c einfach
#include <stdlib.h>
#include <cyg/infra/diag.h>
#include "DSPController/CDSPController.h"
#include "Common/SystemMonitor/CSystemMonitor.h"
#include "WebServer/CWebServer.h"
extern "C" void cyg_user_start(void);
CDSPController* pub_pcl_DSP;
CWebServer* pub_pcl_Web;
void cyg_user_start()
{
diag_printf("cyg_user_start()\n");
pub_pcl_Web = new CWebServer;
}
und starte wie ich in CWebServer deine threads.
Gruß
Bernhard
Super, schon mal vielen Dank... Wird mich wohl eine Weile beschäftigen!
Falls Dir kooperatives Multitasking langt, dann schau die auch mal Ethernut an.
Hallo alle zusammen! Ich versuche momentan eCos auf dem stm32f4_discovery zum Laufen zu bringen. Das setup und das flashen funktioniert so weit so gut. Allerdings habe ich einige Probleme mit dem HAL. Die Ansteuerung der LEDs zum Beispiel funktioniert bei mir überhaupt nicht, auch nicht mit dem setup von Bernhard. Selbst wenn ich die clocks manuell konfiguriere tut sich da nix. Kann mir da eventuell jemand nen Tipp geben was man da machen muss? Ansonsten müsste ich weiterhin auf asm-Code zurückgreifen. Gruß Juri
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.