Forum: Mikrocontroller und Digitale Elektronik Cortex oder Cortex M


von Regera (Gast)


Lesenswert?

HI,

der Titel sagt schon vieles.

Wann soll ein Cortex und wann ein Cortex M genommen werden?

Grüße
Rene

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ein "Cortex" ohne zusätzlichen Buchstabe gibt es nicht.

von Regera (Gast)


Lesenswert?

dann z.b. cortex a7

Rene

von holger (Gast)


Lesenswert?

>der Titel sagt schon vieles.

Der sagt gar nichts.

>Wann soll ein Cortex und wann ein Cortex M genommen werden?

Sag was du machen willst. Dann kann man dir vieleicht einen
Tip geben. Aber das ganze hört sich so schon nach Troll an.

von (prx) A. K. (prx)


Lesenswert?

Markus Müller schrieb:
> Ein "Cortex" ohne zusätzlichen Buchstabe gibt es nicht.

Oh doch, den gibts. Und jeder hat einen, wenngleich von sehr 
unterschiedlicher Qualität. Und der ist für den Einsatz eines Cortex M 
sogar unabdingbar erforderlich.

von and (Gast)


Lesenswert?


von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Regera schrieb:
> cortex a7

Ist ungefähr so, wie wenn du einen PC mit einem 8-bit-Mikrorechner
vergleichen würdest.

Der 8-Bitter kann nicht allzu viel, ist aber einfach zu beherrschen.
Der PC kann viel mehr, aber man programmiert ihn nicht mehr komplett
„zu Fuß“, sondern beschafft sich ein Betriebssystem und programmiert
eine Anwendung, die dann in diesem Betriebssystem läuft.

von Regera (Gast)


Lesenswert?

Danke bisher.

Bisher habe ich verstanden, dass ich für einen Cortex M vielleicht ein 
RTOS einsetze und für ein Cortex (A7) z.B. ein Linux.

Aber wann entscheide ich mich für was. was sind typische Kriterien?

Beispiel: Eine Anlage mit 10 verteilten Steuerungen. Kommunikation 
untereinander soll über z.b. TCP/IP erfolgen. Es werden einige IO 
genutzt.

was bringt mir die eine oder andere Variante für Vor- und Nachteile?

danke
RENE

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Die Frage ist, ob du einen „großen“ Computer oder eher einen Controller
brauchst (single-chip computer).  Cortex-A ist ersteres, Raspberry Pi,
Mobiltelefon, Tablet computer.  Cortex-M (mit verschiedenen Nummern
dahinter, die die Ausbaustufe bezeichnen und damit auch die
Komplexität) sind Controller, bei denen man alle wesentlichen Dinge
auf einem Chip an Bord hat.

von Maude (Gast)


Lesenswert?

Um die Frage auch zu beantworten statt in das Rumgebashe einzustimmen:

Es gibt Cortex als '-A', '-R' und eben der '-M' Variante.
http://www.arm.com/products/processors/index.php
Das was die meisten benutzten ist der M-Typ, der als einsatz in einem 
Controller ausgelegt ist.
Ich "vermute" du interessierst dich eher für die Frage ob du M0(+), M2, 
M3, M4 nehmen solltest. DAS hängt komplett von deinem Projekt ab.

>Man unterscheidet zwischen Prozessor und Controller. Das Cortex Design 
>beschreibt einen Prozessor, der dann von Lizennehmern erst zum Controller 
>gemacht wird

von GB (Gast)


Lesenswert?

Cortex-M: Microcontroller, alle mit internem Flash, Nummer repräsentiert 
die Leistungsfähigkeit (einzige Ausnahme: M1, Softcore für FPGA)

Cortex-A: Application Processor, alle ohne Flash, macht bei 
Taktfrequenzen jenseits der 400MHz nicht mehr wirklich Sinn, alle mit 
SDRAM-Controller

Cortex-R: Real-Time Microcotroller, für harte Echtzeit, bisher nur von 
TI für sicherheitskritische Anwendungen, alle mit Flash.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Neu wird es den M7 auch geben, der wird in einem halben Jahr im 
STM32F7xx verbaut sein.
Beitrag "Ankündigung: STM32F7xx mit Cortex-M7"

von operator (Gast)


Lesenswert?

Maude schrieb:
> Es gibt Cortex als '-A', '-R' und eben der '-M' Variante.
> http://www.arm.com/products/processors/index.php
> Das was die meisten benutzten ist der M-Typ, der als einsatz in einem
> Controller ausgelegt ist.

Erster Teil stimmt, zweiter wohl eher nicht. Es sei denn du beschränkst 
dich auf Hobby und selber bauen.
Aber gerade durch die Vielzahl an single board computer, sind Cortex A 
auch im Hobby bereich anzutreffen und in der Industrie sowieso.

Auf jeden Fall wäre es auch für mich interessant zu wissen wo die Grenze 
zwischen den beiden liegt, was den Einsatz des M oder A bevorzugen 
würde.
USB Anbindung? Ethernet? Irgendwo müsste eine Schwelle erreicht sein, wo 
es sich lohnt auf den Cortex A zu setzen, nur wo?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

operator schrieb:
> wo die Grenze zwischen den beiden liegt, was den Einsatz des M oder A
> bevorzugen würde.

Ab da, wo du wirklich mehrere 100 MHz Takt und viele Megabyte RAM
brauchst, sodass sich der Aufwand lohnt, den ganzen Krempel da dran
zu fummeln und ein Betriebssystem zu portieren.

Von der Peripherie (USB und so) hängt das weniger ab, sondern mehr
von den Applikationen, die drauf laufen sollen.

von Lothar (Gast)


Lesenswert?

operator schrieb:
> Irgendwo müsste eine Schwelle erreicht sein, wo
> es sich lohnt auf den Cortex A zu setzen, nur wo?

Von der Leistung her keineswegs, sondern von der Anwendung. Beispiel 
Maschinensteuerung, erste Wahl wäre Cortex M0 oder M3 ohne 
Betriebssystem, mit vielen Interrupts und Echtzeit. Kommt für 
Kommunikation USB oder Ethernet dazu, dann M3 mit diesen Schnittstellen. 
Wird mehr Leistung benötigt z.B. digitale Regelung und Filter M4 mit 
FPU. Ist es sicherheitskritisch dann M7 mit Lockstep.

Soll nun eine GUI dazu kommen, ist die Schwelle erreicht. Es kann 
sinnvoll sein, einen M4 mit LCD/Touch-Controller zu verwenden. Meist ist 
es jetzt aber sinnvoll, ein Betriebssystem zu nehmen, und dafür ist A5 
mit MMU der Einstieg.

Oder umgekehrt: die GUI kommt zuerst und man hat Cortex A genommen. Dann 
versucht man von dessen GPIO die Steuerung zu machen. Das funktioniert 
aber nur begrenzt, wegen Multitasking ist I/O nicht schnell genug oder 
nicht echtzeitfähig.

Dann ist die Lösung meist ein Touchscreen mit Cortex A und ein Cortex M 
für die Steuerung, verbunden über USB. Das hat noch den Vorteil, dass es 
nicht so teuer wird, wenn hier nur der Cortex M abraucht.

Übrigens haben A5, R4, M4 bzw. A7, R5, M7 annähernd die gleiche 
Leistung.

von (prx) A. K. (prx)


Lesenswert?

Ein Cortex A ist nicht als Upgrade eines Cortex M zu verstehen. Das sind 
verschiedene Anwendungsgebiete. Wenn man sich in Regionen bewegt, in 
denen man zwar die lowlevel I/O eines Cortex M3 braucht, aber 
beispielsweise die Rechenleistung eines Cortex A15, dann nimmt man 
schlicht beide. Der A15 mit Betriebssystem rechnet und der M3 mit RTOS 
oder ganz ohne steuert.

So findet man in SoCs für Smartphones und Tablets neben den Qualcomm 
Krait oder Cortex A Cores fürs eigentliche System üblicherweise noch 
mindestens einen zusätzlichen Core aus dem Controller-Segment, mit 
Mobilfunk deren zwei. In den NVidia Tegras ist das beispielsweise ein 
ARM7.

: Bearbeitet durch User
von operator (Gast)


Lesenswert?

Wie ist denn die Inbetriebnahme von komplexeren Peripherieschnittstellen 
bei einem Cortex M gelöst? Gibt es da fertige libraries? Und wenn ja, 
wie gut sind diese kompatibel mit einem RTOS?

Ich habe bisher nur erfahrungen mit einem Cortex-A. Da ist zwar die 
Hardwarebeschaltung aufwendiger, da Speicher extern hinzu kommt, man 
wird aber dadurch belohnt, dass dieser in ausreichender Fülle vorhanden 
ist. Hinzu kommt eine MMU (welche bei Cortex M meines wissens fehlt).
Wenn man danach noch z.B. ein Linux portiert hat, ist der rest praktisch 
erledigt. Ethernet PHYs werden vom Kernel erkannt, USB ist plug and 
play, in der Entwicklung sind sachen wie tftpboot und nfs möglich, und 
so weiter.

Wenn ich dann den Speicherplatz von Cortex-M Controller anschaue, kann 
ich mir nicht vorstellen, wie die ganzen Treiber/Stack + RTOS + eigenes 
Programm darauf passen sollen.
Wie sieht es hier mit der integration aus? Wieviel muss man noch zu Fuss 
machen?

von (prx) A. K. (prx)


Lesenswert?

operator schrieb:
> Wenn ich dann den Speicherplatz von Cortex-M Controller anschaue, kann
> ich mir nicht vorstellen, wie die ganzen Treiber/Stack + RTOS + eigenes
> Programm darauf passen sollen.

TCP/IP passt locker in die 32KB eines 8-Bit Mega32, wenn auch mit sehr 
einfachem Stack. Bei den Cortex M sind Typen mit 256KB Flash Mainstream, 
aber es gibt auch weit mehr. Damit geht das locker. Da packt man aber 
auch kein Echtzeit-Linux rein, sondern eine kleineres sparsameres RTOS - 
wenn überhaupt.

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

operator schrieb:
> Hinzu kommt eine MMU (welche bei Cortex M meines wissens fehlt).

Die Cortex M0/3/4 werden meist entweder ohne Betriebssystem betrieben, 
oder mit einem einfachen RTOS. Mehr als ein relativ einfacher 
Speicherschutz ist da nicht erforderlich. Und den gibts, je nachdem was 
der Integrator eingebaut hat.

> Wenn man danach noch z.B. ein Linux portiert hat, ist der rest praktisch
> erledigt. Ethernet PHYs werden vom Kernel erkannt, USB ist plug and
> play, in der Entwicklung sind sachen wie tftpboot und nfs möglich, und
> so weiter.

Wenn du in diese Richtung denkst, dann bleib bei einem Cortex A und 
flansch dem ggf. für Steuerungszwecke einen Cortex M0 an. Der A macht 
Betriebsystem, Netzwerk, Display, ... und der M0 geht an die untere 
Ebene.

Das kann dann u.U. auch sicherheitstechnisch wichtig werden, weil Linuxe 
mit ihrem Netzzugang und dem Sammelsurium an laufenden Daemons immer 
wieder Angriffspunkte darstellen. Und da wärs dann doch besser, wenn dir 
nicht die Heizung abbrennt, bloss weil ein Witzbold ausprobiert hat, was 
man mit den Shellshocker alles anrichten kann.

: Bearbeitet durch User
von Lothar (Gast)


Lesenswert?

operator schrieb:
> Wie ist denn die Inbetriebnahme von komplexeren Peripherieschnittstellen
> bei einem Cortex M gelöst? Gibt es da fertige libraries?

Es gibt Cortex M mit besagten Libraries in einem ROM, die Funktionen 
muss man also nur noch aufrufen, z.B. USB mass storage class oder HID 
z.B.

http://www.nxp.com/products/microcontrollers/cortex_m0_m0/lpc1100/series/LPC11U00.html

Dann gibt es noch kleine Betriebssysteme für spezielle Anwendungen z.B. 
Webserver, Wireless etc. z.B.

http://www.contiki-os.org/

von ich nehme auch einen (Gast)


Lesenswert?

Maude schrieb:
> für die Frage ob du M0(+), M2,
> M3, M4 nehmen solltest.

M2, M2, ..., M2?

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.