Forum: Mikrocontroller und Digitale Elektronik ARM7 oder gleich CORTEX M3


von student (Gast)


Lesenswert?

Hallo alle zusammen.

Ich möchte mich in ARM einarbeiten und habe entdeckt das ARM7 mit 
Thumbmode nicht kompatibel zu dem Thumbmode2 vom Cortex M3 ist. Soll ich 
lieber gleich mit einem Cortex M3 arbeiten?

Gruß
Student

von Reinhard B. (brainstorm)


Lesenswert?

Also ich kannte bis jetzt aktiv nur AT89* und XC167* und bin jetzt durch 
eine Arbeit an der Uni auf den Cortex M3 gekommen. Im Konkreten den 
STM32F103xxx. Also ich muss sagen, mir gefällt das Ding. Geht bei uns v. 
a. um die Stromspareigenschaften und günstige Toolchain.

mfg

von Robert T. (robertteufel)


Lesenswert?

Die meisten werden dir sagen, dass der ARM7 veraltet ist, dem stimme ich 
nicht zu. Der Cortex M3 ist moderner und gleichzeitig der einzig 
inkompatible Core von ARM. Was ic hdamit sagen moechte ist, dass alle 
anderen Cores den ARM Mode, den Thumb Mode und alle Cortex den Thumb2 
mode unterstuetzen. Durch die Inkompatibilitaet lassen sich ARM7 
Programme nicht so ganz ohne weiteres auf den Cortex transferieren 
"einfach neu kompilieren" hoer ich dann immer, reicht nicht so ganz aber 
lassen wir das mal.
Mit ARM7 core gibt es schaetzungsweisse 10-20 mal mehr Auswahl als mit 
dem M3. Jetzt hoer ich auf mit der Argumentation fuer den ARM7.
Der Cortex-M3 ist einfacher zu handhaben, besser zu debuggen, mehr 
echtzeitfaehig, bringt eine bessere Leistung / MHz und ist mehr 
standardisiert, was zukuenftiger Wiederverwendung von Code sehr entgegen 
kommt. Konzipiert war der M3 zwar urspruenglich als 8-bit Aufsteiger und 
sollte unterhalb des ARM7 angesiedelt sein. Das hat sich geaendert, er 
ist gleich oder leicht oberhalb des ARM7 in Performance.
Also wenn es darum geht fuer Dich selbst einzusteigen, nimm ein M3 
basierendes Device. Wenn es um eine Firmenentscheidung geht, dann soll 
evtl. auch Atmel oder NXP genommen werden und da kommen die M3 Derivate 
erst in kuerze auf den Markt. Ansonsten Luminary oder ST haben ne Menge 
Teile verfuegbar und weitere folgen bald.

Robert Teufel
Sucht Ihre Firma einen Partner in Silicon Valley?
Ich stehe gerne zur Verfuegung.
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Meine ARM/Cortex Webseite: www.lpc2000.com

von Paul (Gast)


Lesenswert?

>Soll ich lieber gleich mit einem Cortex M3 arbeiten?


Wenn Du nicht aus irgendwelchen (dienstlichen?) Gründen gezwungen bist, 
später den ARM7 einzusetzen, dann ist der M3 klar die erste Wahl. In 1-2 
Jahren wird der der Standard-32Bit Controller von ARM sein.

Zum Einstieg wirst Du es auch viel einfacher mit dem M3 haben. Der ist 
halt aktuell und als Nachfolger vom ARM7 konsequenter für den 
Mikrocontroller-Markt entwickelt. Der ARM7 ist halt eine CPU, die als MC 
eingesetzt wird. Daher kommen auch solche Altlasten wie der nicht 
integrierte Interrupt Controller - Stichwort spurious interrupts sowie 
lange, nicht deterministische Latenz -, zwei Befehlssätze, bitbanding - 
also unter anderem atomare Port- sowie Registerzugriffe -, nicht alignte 
Speicherzugriffe - spart Speicher -.

Von Vorteil ist sicherlich auch, daß ARM jetzt mit CMSIS einen 
Softwarestandard setzt, der einen schnellen Wechsel der Derivate oder 
Tools ermöglicht, ohne nervende Anpassungen der Software vornehmen zu 
müssen.
Nicht zu vergessen auch die umfangreichen Peripherie-Libraries der 
Hersteller wie Luminary oder ST, die einen Einstieg ohne großes Lesen 
der Datenblätter ermöglichen.

von Peter D. (peda)


Lesenswert?

Ich sach mal auch, eindeutig Cortex M3.

Diese unsäglichen Set- und Clear-Register des LPC, damit man von hinten 
durch die Brust ins Auge Bits atomar zugreifen kann, gehen mir sowas auf 
den Senkel.

Man merkt dem ARM7 an, daß er ursprünglich nicht als MC konzipiert war 
und dann mit der heißen Nadel umgestrickt wurde.


Peter

von GB (Gast)


Lesenswert?

>...In 1-2 Jahren wird der der Standard-32Bit Controller von ARM sein.

Totgesagte leben länger, siehe 8051. Der ARM7 wird sich noch sehr lange 
am Markt halten.

von Random .. (thorstendb) Benutzerseite


Lesenswert?

Hi,

Ich würde dir als Cortex-M3 den STM32 empfehlen, der lässt sich wirklich 
"schön" programmieren.
Soll es ein ARM7 sein, so habe ich gute Erfahrungen (war mein 
ARM-Einsteiger-Controller) mit dem LPC2148 gemacht.

Als Toolchain empfehle ich Keil uVision, auch bei der Demo sind 
sämtliche Examples dabei, und das Codelimit reicht sehr lange aus.
Die GNU Tools sind kostenlos, allerdings braucht man da etwas mehr 
Erfahrung.

Für den Cortex-M3 empfehle ich weiterhin die CMSIS, sie bietet neben 
einem simplen Register-Programmiermodell einige Helferlein (Funktionen) 
u.a. zum NVIC sowie (z.Zt.) ein Setup des Clockings vom STM32.


VG,
/th.

von Andreas (Gast)


Lesenswert?

Naja:
>Als Toolchain empfehle ich Keil uVision, auch bei der Demo sind
>sämtliche Examples dabei, und das Codelimit reicht sehr lange aus.


Das Limit sind 32 KiB für Code+Daten. Für einen 256KB Chip und erst 
recht einen 32Bitter ist das eine Grenze, die schnell erreicht ist. 
Sicherlich vergleichbar mit den 16KiB eines Mega16.
Also ein Display dran, ein bißchen Grafik, schon muss man externen Flash 
anstricken, um weitermachen zu können...

Ob sich dann der Einarbeitungsaufwand dafür lohnt, wenn man eh im Voraus 
weiß, daß man das Geld nicht für die Vollversion ausgeben wird...
Ich denke, daß sich so eine Eval-Version nur lohnt, wenn man wirklich 
irgendeine Vollversion hinterher kaufen will.

von Random .. (thorstendb) Benutzerseite


Lesenswert?

Andreas wrote:
> Naja:
>>Als Toolchain empfehle ich Keil uVision, auch bei der Demo sind
>>sämtliche Examples dabei, und das Codelimit reicht sehr lange aus.
>
>
> Das Limit sind 32 KiB für Code+Daten. Für einen 256KB Chip und erst
> recht einen 32Bitter ist das eine Grenze, die schnell erreicht ist.
> Sicherlich vergleichbar mit den 16KiB eines Mega16.
> Also ein Display dran, ein bißchen Grafik, schon muss man externen Flash
> anstricken, um weitermachen zu können...
Na, da würde ich mal wiedersprechen. Es muss schon so einiges 
zusammenkommen, um an 32k (20k+12k glaub ich) ranzukommen. Jeder ARM 
rechnet zwar intern mit 32Bit, die (meisten) Thumb(2)-Befehle benötigen 
aber nur 16Bit im Programmspeicher.

> Ob sich dann der Einarbeitungsaufwand dafür lohnt,
Genau das gefällt mir daran, dass der Aufwand fast =NULL ist. Als ich 
vor ca: 2,5J mit dem LPC anfing, kannte ich nur den AVR, CodeVision bzw. 
WinAVR.
Ich hab das uVision Handbuch nie gelesen (doch, aber erst 2J später 
**smile**).

> wenn man eh im Voraus
> weiß, daß man das Geld nicht für die Vollversion ausgeben wird...
> Ich denke, daß sich so eine Eval-Version nur lohnt, wenn man wirklich
> irgendeine Vollversion hinterher kaufen will.
Sie lohnt sich für den Einstieg, da man "fertig gekochtes" vorgesetzt 
bekommt, was auch wirklich (anpassungslos oder mit geringem Aufwand für 
eigene Entwicklungen) läuft. Mit gcc habe ich da andere Erfahrungen 
gemacht, als ich etwas einfaches für den STM32 suchte... (keine DL!).

Ich fand das zumindest damals sehr hilfreich :-)


VG,
/th.

von Student (Gast)


Lesenswert?

Danke erstmal.
Ihr habt mir echt weiter geholfen!

Also ich werd mich jetzt auf den Cortex M3 stürtzen.

Eine Frage zu den Toolchains und J-Tag:

Toolchain:
- GNU
- µVision
- CrossWorks (www.rowley.co.uk)

J-Tag:
- ARM-USB-OCD


Wenn ich später in der Industrie (produktiv) arbeiten möchte, was würdet 
ihr vorschlagen? GNU oder propritäres. Was haltet ihr von CrossWorks? 
Ich find es klasse das es auch unter Linux läuft.

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

Student wrote:
> Wenn ich später in der Industrie (produktiv) arbeiten möchte, was würdet
> ihr vorschlagen? GNU oder propritäres.

Ich sage das nicht leichten Herzens, aber kommerzielle tools sind in so 
einem Fall durchaus zu bevorzugen. Vor allem zum Debugging, Simulieren, 
etc. Denk an einen JTAG Adapter, der (bzw. dessen Treiber) alle 
gewünschten Funktionen Deines Systems unterstützt.

Der Compiler/Linker ist eher zweitrangig. Aber da Du eh schon für die 
toolchain bezahlt hast...

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

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.