- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 35

Thema: Arduino Due: FreeRTOS installieren und mit Platformio übersetzen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Zitat Zitat von alexander_ro Beitrag anzeigen
    @Mxt: Ich meinte jetzt nicht unbedingt einen spezielle Compiler sondern nur ob nun mit Platformio oder ohne?
    Ok, meine Antwort bezog sich da auf das "Compiler bauen" in deiner Frage. Dann ist das "bauen" also nur das Gegenstück zum installieren auf dem anderen Systemen.

    Man müsste sich halt anschauen, wie das FreeRTOS für die AVR in Platformio gemacht ist. Ob es auch die Sourcen für andere Platformen enthält. Dann besteht da vielleicht eine Chance.

    Ansonsten steht ja hier unter supported Tools für Atmel auch GCC
    http://www.freertos.org/RTOS_ports.html
    Also sollte das auch irgendwo beschrieben sein.


    Zitat Zitat von alexander_ro Beitrag anzeigen
    Vielleicht versuche ich es mal mit der mbed Version. Ich muss sagen das habe ich mir noch nie angeschaut weil es mir unsympathisch ist auf fremden Rechnern zu Entwickeln.
    Muss man doch gar nicht. Platformio ist die eine Variante lokal zu übersetzen, aber mbed hat auch sowas selbst, auch in Python
    https://os.mbed.com/docs/v5.6/tools/mbed-cli.html

    mbed abstrahiert die Hardware auch ziemlich stark. Das hat auch so seine Nachteile. Dafür hat es Multithreading, Ethernet usw.

    Es gibt halt z.B. hier ein Board im Uno Format
    https://os.mbed.com/platforms/FRDM-K64F/
    das einen Controller verwendet, der sehr eng mit dem auf dem Teensy 3.5 verwandt ist (mbed hat MK64FN..., Teensy MK64FX..., unterscheiden sich hauptsächlich bei RAM und Flash). Wenn man da tiefer eintauchen will, hat man in mbed und Arduino immerhin die gleichen Prozessorregister als Basis ...
    Geändert von Mxt (04.11.2017 um 17:50 Uhr)

  2. #2
    HaWe
    Gast
    Zitat Zitat von Mxt Beitrag anzeigen
    Ok, meine Antwort bezog sich da auf das "Compiler bauen" in deiner Frage. Dann ist das "bauen" also nur das Gegenstück zum installieren auf dem anderen Systemen.

    Man müsste sich halt anschauen, wie das FreeRTOS für die AVR in Platformio gemacht ist. Ob es auch die Sourcen für andere Platformen enthält. Dann besteht da vielleicht eine Chance.

    Ansonsten steht ja hier unter supported Tools für Atmel auch GCC
    http://www.freertos.org/RTOS_ports.html
    Also sollte das auch irgendwo beschrieben sein.



    Muss man doch gar nicht. Platformio ist die eine Variante lokal zu übersetzen, aber mbed hat auch sowas selbst, auch in Python
    https://os.mbed.com/docs/v5.6/tools/mbed-cli.html

    mbed abstrahiert die Hardware auch ziemlich stark. Das hat auch so seine Nachteile. Dafür hat es Multithreading, Ethernet usw.

    Es gibt halt z.B. hier ein Board im Uno Format
    https://os.mbed.com/platforms/FRDM-K64F/
    das einen Controller verwendet, der sehr eng mit dem auf dem Teensy 3.5 verwandt ist (mbed hat MK64FN..., Teensy MK64FX..., unterscheiden sich hauptsächlich bei RAM und Flash). Wenn man da tiefer eintauchen will, hat man in mbed und Arduino immerhin die gleichen Prozessorregister als Basis ...
    nicht dass ich euch entmutigen will, aber was mich damals schon frustriert hatte, war
    a) ein SAM3X8E ist in http://www.freertos.org/a00090.html#ATMEL nicht gelistet, nur andere SAM3 Typen:
    AT91SAM3 ARM Cortex-M3 based microcontrollers

    Atmel SAM3S-EK2 and Atmel SAM3X-EK demo using Atmel Studio
    This page presents two projects that both run the same demo application. The first targets the SAM3S microcontroller on the SAM3S-EK2 evaluation board, and the second the SAM3X microcontroller on the SAM3X-EK evaluation board. Both are built and debugged using the free Atmel Studio IDE.

    Atmel SAM3U-EK demo using IAR
    The demo application presented on this page is pre-configured to execute on the official SAM3U-EK evaluation kit from Atmel. The demo uses the FreeRTOS IAR ARM Cortex-M3 port and can be compiled and debugged directly from the IAR Embedded Workbench for ARM.
    und
    b) die Hinweise auf einer anderen Seite https://create.arduino.cc/projecthub...arduino-ebc3cc, dass noch nicht einmal sehr ähnlich klingende ARM SAM Boards RTOS-kompatibel sind:
    Let's discuss why it won't work in this particular library. Because the Arduino IDE preconfigures all the hardware resources (Timers, Serial Ports, etc) in a MCU "under the covers" to make it easy for new programmers, there are few resources available to drive a RTOS without generating conflicts with Arduino Libraries, or causing important features to cease working. Luckily with AVR ATmega devices the Watchdog Timer was unused by the Arduino IDE, so I could use that to drive the RTOS System Tick, and the Watchdog Timer is configured identically across all ATmega devices.

    Also because no resources were re-purposed (borrowed from the Arduino IDE), there was no need to generate a separate core for the AVR version FreeRTOS library. It works with the standard Arduino core.

    To support other hardware within FreeRTOS it is necessary to have both a specific configuration for a hardware timer to generate System Tick interrupts, and a specific efficient Scheduler Interrupt to drive task switching. These two items depend strongly on the hardware, and mean that the implementation will be different for each implementation of the Cortex M0+ core. The Arduino Zero uses the SAMD21 but the Arduino MKR1000 uses the SAMW25. Whilst these are both Cortex M0+, the implementation for each one is different, because of the different features they provide.

    Cortex M0+ is a VLSI "library" which can be licenced from ARM. There is no requirement from vendors to implement it in exactly the same way for each device they produce. Unlike ATmega which is a proprietary implementation from one vendor (AVR), each vendor usually changes the implementation of the Cortex line of processors to suit their exact business requirements, which generally change from vendor to vendor, and even across the range provided by one vendor.

    So whilst someone might find it useful to support all of these different ARM based boards with an implementation of FreeRTOS, I find that most of my needs are covered by ONE AVR implementation which supports all of these Arduino boards; UNO, LEONARDO, YUN, PRO MINI, MICRO, ESPLORA, all of the Arduino Wearables lke LilyPad, MEGA 2560, Adafruit Feather, and all of the options that third parties produce for inexpensive clones.

    There are other timing solutions already available, that provide Threading (quite different from a RTOS in capabilities and features) which may suit simple requirements. These have been mentioned.

    Perhaps not the desired answer, but in reality the AVR ATmega based range of Arduino hardware essentially covers all the requirements of those interested in using the Arduino IDE. Beyond these basic projects, the limitations inherent in using the Arduino IDE outweigh the advantages.
    Trotzdem - oder gerade deswegen - interessiert mich sehr, ob die ARM-Portierungen nutzbar sind für den Due oder eben doch bzw. immer noch nicht.

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212
    @Mxt: Das mit mbed habe ich jetzt mal versucht. Die haben da verschiedene FreeRTOS Versionen im Angebot. Diese "freertos-cm3" habe ich jetzt mal als lib installiert. Allerdings habe die keine Beispiele mehr mit dabei. Also muss ich erst mal weiter lesen wie man da zumindest mal einen Task zum laufen bekommt damit ich das dann compilieren kann und schauen ob es läuft.

    @HaWe: Ob der Due nun weiter gebaut wird oder nicht ist sicher interessant aber ich habe zwei davon und will die so lange sie ausreichen für das was ich brauche auch verwenden.
    Sonst beschweren sich die doch nur das FreeRTOS nicht so recht mit den Arduino lib zusammen passen will. Das wäre mir jetzt eigentlich gleich weil die viel Hardware die der Due mitbringt nicht unterstützt. Wegen der auch erwähnten Atmel lib ist mir unklar. Wenn ich es richtig verstanden habe kann und darf man die auch außerhalb der Atmel IDE benutzen und auch mit eigenen Produkten weiter geben. Was einleuchtet Atmel verdient Geld mit den Prozessoren nicht mit der IDE. Also ich sehe so nicht wirklich einen Grund warum das nun nicht gehen soll.

    Ich bin mir aber trotzdem nicht mehr sicher ob sich der Aufwand lohnt nur um einige Tasks parallel auszuführen.

  4. #4
    HaWe
    Gast
    Zitat Zitat von alexander_ro Beitrag anzeigen
    @Mxt: Das mit mbed habe ich jetzt mal versucht. Die haben da verschiedene FreeRTOS Versionen im Angebot. Diese "freertos-cm3" habe ich jetzt mal als lib installiert. Allerdings habe die keine Beispiele mehr mit dabei. Also muss ich erst mal weiter lesen wie man da zumindest mal einen Task zum laufen bekommt damit ich das dann compilieren kann und schauen ob es läuft.

    @HaWe: Ob der Due nun weiter gebaut wird oder nicht ist sicher interessant aber ich habe zwei davon und will die so lange sie ausreichen für das was ich brauche auch verwenden.
    Sonst beschweren sich die doch nur das FreeRTOS nicht so recht mit den Arduino lib zusammen passen will. Das wäre mir jetzt eigentlich gleich weil die viel Hardware die der Due mitbringt nicht unterstützt. Wegen der auch erwähnten Atmel lib ist mir unklar. Wenn ich es richtig verstanden habe kann und darf man die auch außerhalb der Atmel IDE benutzen und auch mit eigenen Produkten weiter geben. Was einleuchtet Atmel verdient Geld mit den Prozessoren nicht mit der IDE. Also ich sehe so nicht wirklich einen Grund warum das nun nicht gehen soll.

    Ich bin mir aber trotzdem nicht mehr sicher ob sich der Aufwand lohnt nur um einige Tasks parallel auszuführen.
    verstehe ich jetzt nicht recht - du willst doch den Arduino Due mit der Arduino IDE und FreeRTOS zusammen benutzen, oder etwa nicht? Oder willst du etwa den Arduino Due ohne Arduino IDE nutzen, also auch ohne die ganzen sonstigen Arduino device und core driver libs?
    Immerhin schreibt ja der Autor der Arduino-RTOS Implementierung, dass er gerade nicht auch den Due supporten will, weil er ja wohl EOL ist (und auch noch nicht einmal andere SAM und SAMD cores) und das mit dem Due gilt sicher auch nicht für ihn allein.

    ps,
    und nur um mal ein paar Threads parallel auszuführen, brauchst du auch kein FreeRTOS, das geht mit dem Due Scheduler auch. Darf nur nicht so anspruchsvoll werden (müssen) wie bei POSIX pthread.

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212
    Nein ich will wie oben steht platformio benutzen. Da steht aber auch noch das ich mir nicht sicher bin ob man es nicht evtl. besser macht ohne die Tools. Sondern nur sich einen einfachen cross Compiler für diese CPU zusammenbaut und dann halt wie gewohnt mit Makefiles das Projekt baut. Ich bin mir auch nicht sicher ob man nicht mit den Sachen von Atmel besser kommt. Die scheinen die CPU sehr viel besser zu unterstützen als Arduino.
    Atmel: http://asf.atmel.com/docs/latest/sea...l?device=sam3x

    Ich glaub eher das der den Due halt als EOL sehen will weil er nicht den Aufwand betreiben will eine ARM CPU zu unterstützen. Es sind sicher einige der Due verkauft worden und die China Nachbauten wird man sicher auch noch lang bekommen als EOL sieht für mich anders aus. Ohne den Due gibt es halt bei den Arduino Platinchen nicht mehr viel das genug Rechnleistung und Speicher hat das man nicht nur das Problem lösen kann sondern auch noch Fehlertoleranz, Plausibilätsprüfungen und Diagnose einbauen kann.

    Der Due Scheduler hat halt ein bisschen Nachteile wenn mal ein Task hängt. Dann tut der nichts mehr und es ist auch keine Kommunikation mehr mit dem Platinchen möglich. Was es ungemein schwer macht dem User Nachrichten über das Problem zu kommen zu lassen. Mir ist schon klar das heutige Systeme wegen notorischem Geiz bei der Industrie nur als Blackbox gebaut werden und es oberstes Ziel ist die User im dunkeln Tappen zu lassen. Ich würde es gerne besser machen.

  6. #6
    HaWe
    Gast
    Zitat Zitat von alexander_ro Beitrag anzeigen
    Nein ich will wie oben steht platformio benutzen. Da steht aber auch noch das ich mir nicht sicher bin ob man es nicht evtl. besser macht ohne die Tools. Sondern nur sich einen einfachen cross Compiler für diese CPU zusammenbaut und dann halt wie gewohnt mit Makefiles das Projekt baut. Ich bin mir auch nicht sicher ob man nicht mit den Sachen von Atmel besser kommt. Die scheinen die CPU sehr viel besser zu unterstützen als Arduino.
    Atmel: http://asf.atmel.com/docs/latest/sea...l?device=sam3x

    Ich glaub eher das der den Due halt als EOL sehen will weil er nicht den Aufwand betreiben will eine ARM CPU zu unterstützen. Es sind sicher einige der Due verkauft worden und die China Nachbauten wird man sicher auch noch lang bekommen als EOL sieht für mich anders aus. Ohne den Due gibt es halt bei den Arduino Platinchen nicht mehr viel das genug Rechnleistung und Speicher hat das man nicht nur das Problem lösen kann sondern auch noch Fehlertoleranz, Plausibilätsprüfungen und Diagnose einbauen kann.

    Der Due Scheduler hat halt ein bisschen Nachteile wenn mal ein Task hängt. Dann tut der nichts mehr und es ist auch keine Kommunikation mehr mit dem Platinchen möglich. Was es ungemein schwer macht dem User Nachrichten über das Problem zu kommen zu lassen. Mir ist schon klar das heutige Systeme wegen notorischem Geiz bei der Industrie nur als Blackbox gebaut werden und es oberstes Ziel ist die User im dunkeln Tappen zu lassen. Ich würde es gerne besser machen.
    nein, er will keine ARM Boards supporten wegen der Vielzahl verschiedener existierender System Interrupts für den RTOS Scheduler, alle ARMs haben ja wohl verschiedene eigene - anders als bei den AVRs, denn dort geht es einheitlich über identische Watchdog Routinen.
    Wäre jetzt der Due das angesagte Nonplusultra, auf den sich alle stürzen, mitsamt der Arduino-Entwickler und aller freien Mitarbeiter und weltweit unter allen Arduino-Usern, sähe das sicher anders aus.

    Das mit Platformino statt Arduino IDE allerdings hatte ich überlesen, sorry. Ich fühlte mich erinnert an meine Suche für die Arduino IDE, es war der Grund, warum ich zum Raspi gewechselt habe (feat. pthread, HID Tastatur/Maus, HDMI, Grafik, Video, Cam) und Arduinos (Due, Mega, Nano, ESP8266, SAMD-shields) höchstens nur noch als Huckepackboards für den Raspi per UART, USB oder I2C benutze.

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212
    Ja die ARM Kerne unterscheiden sich schon stärker. Aber die Decken auch einen viel größeren Anwendungsbereich ab als die AVR. Die gehen ja vom Mikrocontroller bis zum Multiprozessor Server.

    Der Raspberry ist aber auch ARM. Nur macht da halt der Hersteller die Kernel Anpassungen dafür. Die bei FreeRTOS tun das halt nicht so wie die Linux Macher. Aber wenn man wirklich Zeitkritisch Mechanik oder andere Abläufe steuern möchte ist das nur schwer mit einem Raspberry alleine zu machen. Zumal dem im Vergleich zum Due eine ganze Menge an Ports und AD-Wandler und so Zeug fehlt. Bei mir sollte der Due dann auch Daten über USB an einen PC oder Raspberry liefern. Weil zum Daten Sammeln und Auswerten ist der Due ja nun nicht so geeignet. Nur halt alles was mit dem zu Steuernden Ablauf zu tun hat soll der Due machen, überwachen und wenn es Fehler gibt sagen wo es liegt das Problem.

    Vielleicht wäre ja der Due der Lieblings Controller von allen wenn er unterstützt würde ...

Ähnliche Themen

  1. arduino atmega2560 & atom & platformio & ubuntu
    Von inka im Forum Arduino -Plattform
    Antworten: 0
    Letzter Beitrag: 13.08.2017, 09:26
  2. Antworten: 1
    Letzter Beitrag: 12.06.2015, 14:50
  3. Projekt: FreeRTos auf RP6
    Von RolfD im Forum Robby RP6
    Antworten: 14
    Letzter Beitrag: 18.12.2012, 12:05
  4. FreeRTos auf RP6?
    Von RolfD im Forum Robby RP6
    Antworten: 11
    Letzter Beitrag: 29.07.2012, 22:58
  5. freeRTOS.org
    Von Superhirn im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 24.11.2006, 19:07

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests