www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RTOS for Cortex M1


Autor: Bunix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Liebe Community,

ich arbeite mit einem Cortex M1. (Eval Board "Actel M1A3PL") Und habe 
jetzt vor ein RTOS auf diesen Controller zu bringen. Hat jemand 
erfahrungen?
Ich werde uC/OS austesten (Port für den M1 verfügbar). Würde aber auch 
gerne noch andere RTOS ausprobieren. Meine Recherchen im Internet sind 
fast ergebnislos verlaufen. Es gibt praktisch von keinem bekannten RTOS 
ports für den M1. Vielleicht kennt ja einer doch noch was. Oder hat mal 
selber ein RTOS auf diesen Controller portiert.

Alle anregungen sind willkommen! :)

Autor: RT-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

schau mal dort:

http://forums.arm.com/index.php?showtopic=6402

Der M1 ist wohl kaum als MCU verbreitet.


Grüße.

Autor: Bunix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke. Hmm doof ;; Naja dann bleibt es vorerst bei Micro C/OS...

Autor: RT-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du eine konkrete Anwendung ? Der M1 ist wohl mehr oder weniger zum 
M1 kompatibel.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
RT-Fan schrieb:

> Der M1 ist wohl mehr oder weniger zum M1 kompatibel.

Hoffentlich. ;-)

Autor: Bunix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nee, es geht mir auch nur darum Betriebssysteme auf dem Mikrocontroller 
zu testen und zu bewerten. Daraus resultiert dann die Feststellung für 
was für Andwendungen dieser geeignet ist.

Autor: RT-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> > Der M1 ist wohl mehr oder weniger zum M1 kompatibel.

> Hoffentlich. ;-)

M3 g

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich das Gewäsch von ARM richtig verstehe, dann ist der M1 ein 
Subset vom M3, also M1 < M3.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richtig. Mit Zielsetzung FPGA und Stromsparen.

Autor: blup (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf dem M3 läuft auf jeden Fal FreeRTOS und OpenRTOS.
Vltl klappts beim M1 trotzdem, weil es ja theoretisch "kompatibel" sein 
sollte.

MfG

Autor: Bunix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jupp das es Theoretisch gehen sollte lese ich öfter.
Mhh schonmal einer was mit uCLinux gemacht? Das soll angeblich support 
für den M1 haben.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
blup schrieb:

> Vltl klappts beim M1 trotzdem, weil es ja theoretisch "kompatibel" sein
> sollte.

Da der M1 nicht alle Befehle des M3 kennt, beispielsweise keine 
Division, wird es schon erforderlich sein, dass der Compiler den M1 
kennt. Auf M3 stellen und hoffen wird nicht funktionieren.

Das Maschinenmodell, also hauptsächlich SysTick und NVIC, wird man 
konkret vergleichen müssen, aber wahrscheinlich hat ARM hier das Rad 
nicht neu erfunden.

Autor: Bunix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann ich denn Code der für den Arm7-m geschrieben wurde auf dem M1, ohne 
einschränkungen, ausführen? Der M1/3 ist ja eine Weiterentwicklung des 
Arm7, so wie ich das verstehe.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ARM-Code = der klassische in 32bit codierte ARM Befehlssatz.
Thumb/Thumb2-Code = der modernere in 16bit codierte Befehlessatz.

ARM7TDMI kennt sowohl ARM-Code als auch Thumb-Code, aber nur mit dem "T" 
in ARM7TDMI, ohne T gibt's nur ARM-Code. Thumb-Code von ARM7 wird auf 
den Cortex Cores teilweise laufen, ARM-Code überhaupt nicht. Teilweise 
deshalb, weil Thumb-Code nicht ganz selbständig ist, ganz ohne etwas 
ARM-Code geht es da nicht. Erst die Cortex Cores kommen ganz ohne 
ARM-Code aus.

Kurz: nein.

Autor: Marcus Harnisch (mharnisch) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bunix schrieb:
> Kann ich denn Code der für den Arm7-m geschrieben wurde auf dem M1, ohne
> einschränkungen, ausführen?

Was meinst Du mit "für den Arm7-m"? Einen ARM7 Prozessor (Architektur
v4T) oder einen Cortex-M3 (Architektur v7-M)?

Cortex-M1 und -M0 implementieren die Architektur v6-M, bei der es sich
um eine Untermenge der Architektur des Cortex-M3 handelt. Damit fallen
auch einige Instruktionen weg. Die meisten davon sind 32bit Thumb-2
Befehle. Das sollte allerdings nicht das größte Problem sein, da das
in den meisten Fällen vom Compiler gerichtet wird. Anders sieht es mit
dem Programmiermodell aus. Ich weiß leider nicht, welche speziellen
Eigenschaften des Cortex-M3 in allen möglichen RTOS verwendet werden.

Die Liste der Unterschiede zwischen v6-M und v7-M ist im Architecture
Reference Manual zu finden (Appendix D), das allerdings zur Zeit leider
nicht öffentlich verfügbar ist.

> Der M1/3 ist ja eine Weiterentwicklung des Arm7, so wie ich das
> verstehe.

Was das Marketing angeht schon. Technisch eher nicht.

Gruß
Marcus
http://www.doulos.com/arm/

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du schon ucOS-II testen willst, dann nimm doch gleich embOS von 
Segger. Das ist technisch besser (oder wieso glaubst du verkauft Micrium 
Produkte von Segger unter ihrem Label ;-) ), schneller und du hast 
deutschen Support.

Ich finde zwar auf die Schnelle auf deren Webseite kein Port dafür, aber 
ruf bei den Jungs einfach mal an oder mail denen. Mit denen kann man gut 
reden und falls es noch keine Portierung gibt, machen sie es vielleicht 
eben.

Autor: RT-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Vectoren sind identisch und der context-switch sollte auf dem M1 
sowie auf dem M3 identisch sein. Stell deinen Kompiler auf M1 und leier 
es mal durch.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Context Switch ist aber in Assembler geschrieben, je nachdem welche 
Befehle dort benutzt werden, die es auf dem CortexM1 nicht gibt, müsste 
man dort noch was anpassen.

Autor: Bunix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, ich versuche jetzt aktuell µC/OS-II auf dem M1 zum laufen zu 
bringen. Es gibt einen Port dafür. Leider provided micrium keinerlei 
Tutorials. Und einfach kompilieren lässt sich dieser Port leider nicht. 
Da scheint noch einiges zu fehlen. Ich habe das MicroC/OS Buch, von dem 
alle so schwärmen. Kann das aber nicht nachvollziehen. Es geht darin um 
die Programmierung für µC/OS, nicht aber wie man eine Version davon auf 
einem Controller zum laufen bringt. (Das Kapitel über Portierung von dem 
OS ist nicht wirklich ausführlich.) Angeblich "Compilieren", "Flashen", 
"Fertig". Nicht wirklich.

embOS hatte ich mir auch mal (oberflächlich) angeschaut. Sieht 
vielversprechend aus, es gibt allerdings noch keinen M1 Port. Und der M3 
funktioniert nicht, da Befehle vom Thumb2 Instruction Set verwendet 
werden, die der M1 nicht kann. (Der hat ja praktisch nur Thumb2-Light 
implementiert) Die Version für den ARM7 ist von der Architektur wohl 
zuweit weg. (Der M1 basiert auf dem ARM6-M)

Ich fände es schön wenn ich µC/OS zum laufen bekomme, da es dafür aber 
keine Community zu geben scheint, und Micrium nicht mal ein Support 
Forum hat (LOL) wird das etwas arbeit werden.

Ich bin für jeden Hinweis (Tutorials o.ä.) dankbar! Google gibt leider 
nicht viel her. :(

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.