Hallo zusammen,
ich würde gerne von den AVR 8-Bit'ern auf 32-Bit umsteigen und habe mal
nach Eval-Boards geschaut. In die engere Auswahl sind jetzt Boards mit
LPC2148 und LPC1769 gekommen.
Jetzt meine Frage: Gibt es außer den technischen Vorteilen die der
Cortex-M3 gegenüber dem Arm7 hat auch noch Vorteile welche die
Entwicklung als 32-Bit Anfänger betreffen? Ich denke dabei an die
Schnittstellen (UART, I2C...). Sind diese beim Cortex evtl. einfach zu
Handeln?
Grüße,
Marc
Vergiss für einen Neueinstieg die alten LPC2000. Das Interrupt-Handling
der Cortex-M ist weit besser und auch die Schnittstellenmodule haben
sich weiterentwickelt - wenngleich sie dabei natürlich insgesamt eher
komplexer als einfacher wurden.
Die LPC17xx Reihe ist neuer, daher ist auch die Peripherie ausgereifter,
bzw. bietet mehr Features. LPC2xxx würde ich nicht nehmen.
Schaue noch beim Artikel STM32 vorbei.
Vom STM32 gibt es mehr Auswahl an Variationen und Gehäuse, daher ist der
STM32 mein Favorit.
Peter Dannegger schrieb:> Der ARM7 ist ne Sackgasse, nur 2 Interruptlevel.
Die 16 oder 32 des getrennt eingebauten Interrupt-Controllers darf man
schon mitrechnen. Aber das Interrupt-Konzept der ARM7 bleibt trotzdem
hässlich.
> Die ARM-Cortex haben mindestens 16.
Bei den M0 sind es weniger.
Peter Dannegger schrieb:> Der ARM7 ist ne Sackgasse, nur 2 Interruptlevel.
Nun ja die Cortex-A und Cortex-R haben das IRQ/FIQ Konzept übernommen,
weil es eben für Multitasking optimal ist. Zudem ist dabei die Anzahl
der Interrupts praktisch unbegrenzt, und FIQ ist für Echtzeit fast
latenzfrei.
Weil die Cortex-M spezifisch als Mikrocontroller entwickelt wurden,
wurde das Interrupt Konzept eben genau dafür geändert. Lustigerweise
wird im Automotive-Bereich aber der Cortex-R eingesetzt z.B. TMS570
Lothar schrieb:> Weil die Cortex-M spezifisch als Mikrocontroller entwickelt wurden,> wurde das Interrupt Konzept eben genau dafür geändert. Lustigerweise> wird im Automotive-Bereich aber der Cortex-R eingesetzt z.B. TMS570
Wieso findest du das lustig? Die verwenden ja auch
Multitaskin-Betriebssysteme, oder?
Lothar schrieb:> Nun ja die Cortex-A und Cortex-R haben das IRQ/FIQ Konzept übernommen,> weil es eben für Multitasking optimal ist.
Inwiefern ist es dafür optimal? Was den IRQ angeht, nicht FIQ.
Dass die Cortex-A und -R das alte Interrupt-Schema behalten haben,
dürfte eher damit zusammenhängen, dass sie auch die alte
Befehlssatz-Architektur behalten haben. Als Basis der Nachfolger von
ARM9 und ARM11.
Automotive? schrieb:> Wieso findest du das lustig? Die verwenden ja auch> Multitaskin-Betriebssysteme, oder?
Lustig daran ist, dass der Interrupt-Controller der Cortex-M grad
RTOS-Cores besser entgegen kommt als das alte Schema (PendSV ist da sehr
nützlich). Nur werden die Cortex-A in Anwendungen eingesetzt, in denen
die Interrupt-Latenz nicht im Vordergrund steht, man andererseits gerne
den alten Kernel-Code nicht neu schreiben sondern weiter verwenden will.
A. K. schrieb:> Lustig daran ist, dass der Interrupt-Controller der Cortex-M grad> RTOS-Cores besser entgegen kommt als das alte Schema
Warum wurde dann bisher nur Cortex-R als Automotive Grade
Mikrocontroller zertifiziert? Wir machen eine BLCD-Steuerung immer
zuerst mal für die "industriellen" M4 (z.B. LPC4078, XMC4500) und
portieren dann für die "automotive" R4 (z.B. TMS570), oder notfalls
sogar auf TriCore oder V850. Ok, Nuvoton versucht grade die
Zertifizierung von M0 und M3.
Ihr driftet glaube ich gerade etwas ab...
Dem TO geht es darum, wie schnell man die Schnittstellen ansprechen kann
und nicht schon um ein RTOS. Ich würde mich auch um ein paar Infos zur
Einarbeitung mit dem LPC1769 freuen, da ich mir diesen auch zulegen
möchte.
Peter schrieb:> Ich würde mich auch um ein paar Infos zur> Einarbeitung mit dem LPC1769 freuen, da ich mir diesen auch zulegen> möchte.
Kommt zunächst mal darauf an, ob man mit Eval-Board, Proto-Board oder
Breadboard einsteigen möchte (gibt aber nicht immer LPC1769, manche sind
noch mit LPC1768, macht aber keinen Unterschied). Hier mal günstige
Boards:
https://www.olimex.com/Products/ARM/NXP/LPC1766-STKhttp://www.watterott.com/de/LPC1769-LPCXpresso-Boardhttp://elmicro.com/de/chip1768.html
Als Compiler würde ich zunächst IAR Kickstart empfehlen. Es sind für
alle o.g. Boards dutzende Beispiele dabei, die sofort funktionieren
(Webserver, LCD, USB-Host, USB-Device, SD-Card, CAN, SPI, I2C, ADC, DAC,
PWM). Zudem CMSIS für LPC17xx und USBLib.
Programmierung mit FlashMagic über seriell, Ethernet oder CAN. Debuggen
(falls nötig) mit J-Link EDU für 50 EUR.
Lothar schrieb:> Debuggen (falls nötig) mit J-Link EDU für 50 EUR.
Beim LPCXpresso ist doch der Debugger direkt mit auf dem Board?!
Der IAR Kickstart ist eine freie, also kostenlose Entwicklungsumgebung
mit beschränktem Codeumfang oder sonstigem?
Peter Dannegger schrieb:> Der ARM7 ist ne Sackgasse, nur 2 Interruptlevel.
Für viele Anwendungen reicht das Konzept aber. Zwei gleichwertige höchst
priorisierte Interrupts kann ein Controller alleine zur selben Zeit
sowieso nicht bearbeiten, egal was für ein Interruptsystem er hat.
Außerdem konnte man sich mit den LPC2000 noch selbst einen
Interrupthandler basteln, allerdings in Software. Für vieles war auch
das schnell genug, und Beispiele für Interrupthandler findet man im
Internet auch. Das nannte sich dort "Nested Interrupts".
Jedenfalls reichte er für mein Vorhaben bestens.
Allerdings würde ich mir heute auch die STM32 anschauen.
QImbra schrieb:> In die engere Auswahl sind jetzt Boards mit> LPC2148 und LPC1769 gekommen.
Ich selbst begann mit dem LPC2129, weil ich zwei CAN-Schnittstellen
brauchte. Die Auswahl unter den LPC hat sicher für jeden was passendes.
Die hohe anfängliche Zahl an Errata sollte aus den LPC inzwischen raus
sein. Dank Workarounds von NXP und Keil konnte man aber auch damit noch
leben, so daß die Anwendung nichts davon zu spüren bekam.