Forum: Mikrocontroller und Digitale Elektronik SD-Karte mit FreeRTOS


von Pete K. (pete77)


Lesenswert?

Hallo,

ich möchte auf einem SMT32F4 mit FreeRTOS einen Webserver aufbauen, der 
1-wire Daten einliest, auf SD-Karte speichert und diese dann auf einem 
Webserver zur Verfügung stellt. LCD-Anzeige kommt dazu.

Dazu sind mehrere Tasks geplant:
- Webserver mit IP-Stack
- Datenerfassung
- LCD-Anzeige mit Meüführung etc.

Nun greifen alle 3 Tasks auf die SD-Karte zu. Kann das nicht Probleme 
geben?

Sollte man eventuell einen 4. Task spendieren, der nur für die 
Kommunikation mit der SD-Karte zuständig ist und Lesen und Schreiben als 
Service zur Verfügung stellt?

Leider kann ich keine frei verfügbare Dokumentation zum FreeRTOS finden, 
das macht die Einarbeitung nicht gerade einfach.

VG,
Pete

von Dominik S. (dasd)


Lesenswert?

Pete K. schrieb:
> Leider kann ich keine frei verfügbare Dokumentation zum FreeRTOS finden,

Wie jetzt?
http://www.freertos.org/RTOS.html
Da gibt es doch einiges? Oder was meinst du jetzt mit Dokumentation?

Pete K. schrieb:
> Nun greifen alle 3 Tasks auf die SD-Karte zu. Kann das nicht Probleme
> geben?

Du solltest dich denke ich mit den Mitteln der Interprozesskommunikation 
und Prozesssynchronisation beschäftigen bevor du dich tiefergehend mit 
einem nebenläufigen OS beschäftigst.
Stichwort Mutex / Semaphor

: Bearbeitet durch User
von Guest (Gast)


Lesenswert?

Den Begriff den du suchst heißt "Thread safe". Die Frage ist also ob das 
FreeRTOS Dateisystem (welches ich nicht kenne) Thread safe ist.

Kommerzielle Dateisysteme wie Segger emFile bieten das von Haus aus, 
sprich du kannst es einfach einschalten und kannst dann von mehreren 
Tasks aus Filesystem API Funktionen ohne Probleme aufrufen. Letzlich 
stecken dahinter natürlich Semaphoren, mit denen ein konkurriender 
Zugriff gelockt wird.

von Pete K. (pete77)


Lesenswert?

Dominik S. schrieb:
> Da gibt es doch einiges? Oder was meinst du jetzt mit Dokumentation?

Ich meinte so eine Art Tutorial "Erste Schritte", gerne auch in 
PDF-Form.

Oder muss man die Bücher kaufen, damit man damit wirklich programmieren 
kann?
Wenn dem so ist, dann muss ich mich wohl nach einem anderen RTOS 
umschauen, denn 50€ für Bücher wollte ich nicht ausgeben, dafür lohnt 
sich meine kleine Anwendung nicht.

von Karl H. (kbuchegg)


Lesenswert?

Pete K. schrieb:
> Dominik S. schrieb:
>> Da gibt es doch einiges? Oder was meinst du jetzt mit Dokumentation?
>
> Ich meinte so eine Art Tutorial "Erste Schritte", gerne auch in
> PDF-Form.

Die Schwierigkeit ist, dass man Multitasking, was einem da so alles 
passieren kann und wie und warum man die Sachen dann korrekt angeht, 
nicht einfach so aus dem Ärmel schüttelt. Auf der Uni war das zu meiner 
Zeit eine komplette Semester-Vorlesung samt Übungen.

> Wenn dem so ist, dann muss ich mich wohl nach einem anderen RTOS umschauen

Die Frage ist eher, ob du überhaupt ein RTOS brauchst.
Mit dem Multitasking des kleinen Mannes (Timer samt Interrupt), sowie 
grundlegenden Kentnissen in der Programmierung kann man auch vieles 
erreichen.
Sicher, ein RTOS ist eine Hilfe, weil es den Routinekram erledigt. Aber 
man muss auch erst mal damit umgehen können. Und dann heißt es nicht 
mehr, ich mach mir das so wie ich es für richtig halte, sondern: ich 
muss nach den Regeln des RTOS spielen.
Aber letzten Endes kannst du es drehen und wenden wie du willst: In der 
Informatik gibt es nichts 'for free'. Man muss, insbesondere auf den 
kleinen Systemen, die nicht so ausgefuchst wie Linux oder Windows sind, 
muss man schon zumindest ungefähr wissen, was da im Hintergrund abläuft, 
was sich daraus ergibt, und wie man die Problemstellen in den Griff 
kriegen kann.
Auspacken - Einschalten - Geht. Das funktioniert bei Kühlschränken. Aber 
nicht in der Programmierung. Ein RTOS ist kein Allheilmittel für 
fehlendes Können.

: Bearbeitet durch User
von Pete K. (pete77)


Lesenswert?

Karl Heinz schrieb:
> Auf der Uni war das zu meiner
> Zeit eine komplette Semester-Vorlesung samt Übungen.

Ja, meine Vorlesung zu diesem Thema ist auch schon "etwas" länger her 
:-)

von Dominik S. (dasd)


Lesenswert?

Pete K. schrieb:
> Ich meinte so eine Art Tutorial "Erste Schritte", gerne auch in
> PDF-Form.

Ich finde, dass man mit dem "getting started" auf der Homepage in 
Kombination mit der Beispielapplikation ganz gut zurecht kommt, wenn man 
sich etwas einarbeitet.

Wenn einem natürlich alle Grundlagen für RTOS / Multitasking fehlen ist 
das ganze, wie Karl Heinz, natürlich etwas komplizierter.

von Pete K. (pete77)


Lesenswert?

Karl Heinz schrieb:
> Ein RTOS ist kein Allheilmittel für
> fehlendes Können.

Das "Können" möchte ich mir ja gerne aneignen. Das hier eine Lernkurve 
zu durchschreiten ist, ist mir bewusst. Macht ja auch Spaß.

von Guest (Gast)


Lesenswert?

Wenn du mit drei Taks auskommst, was spricht gegen eine Trial Version 
des embOS?
http://segger.com/downloads.html?pid=27

Dokumentation gibt es hier: 
http://segger.com/admin/uploads/productDocs/UM01001_embOS_Generic.pdf

Sooo schwer ist das jetzt auch nicht mit einem RTOS umzugehen, zumindest 
hat embOS bei mir immer out of the box funktioniert.

von Pete K. (pete77)


Lesenswert?

Ja, das embOS gefällt mir von der Doku her ganz gut.

Gibt es eine Übersicht über die Beschränkung einer Eval-Licence? Ich 
habe auf der Homepage hierzu keine Angaben gefunden.

von Guest (Gast)


Lesenswert?

Die technische Beschränkung ist ganz einfach: Wenn du mehr als drei 
Tasks anlegst, läuft das embOS nur 12 Stunden nach einem Reset. Mit drei 
Tasks kann man aber schon eine Menge machen, weil man auch eine ganze 
Menge mit embOS Software Timern erschlagen kann.

Wie das Lizenztechnisch aussieht, also ob du die Trial Version für dein 
Hobbyprojekt einfach so einsetzen kannst, weiß ich nicht. Kann mir aber 
nicht vorstellen das Segger jetzt damit ein großes Problem hat, im 
Zweifelsfall einfach mal kurz anrufen und fragen.

von Guest (Gast)


Lesenswert?

Guest schrieb:
> Wie das Lizenztechnisch aussieht, also ob du die Trial Version für dein
> Hobbyprojekt einfach so einsetzen kannst, weiß ich nicht. Kann mir aber
> nicht vorstellen das Segger jetzt damit ein großes Problem hat, im
> Zweifelsfall einfach mal kurz anrufen und fragen.

Ok, habe gerade einfach mal mit jemanden von Segger gesprochen, ist kein 
Problem, solange es nicht kommerziell ist, kann man das gerne machen.

von Pete K. (pete77)


Lesenswert?

Hmm, wenn ich mal >3 Tasks brauche, dann ist mir das embOS zu teuer. Und 
dann wieder in ein neues RTOS einarbeiten macht auch keinen Sinn.

Ist wohl eher etwas für Firmen.

Ich schau mir jetzt mal chibios etwas genauer an.

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
Noch kein Account? Hier anmelden.