ARM Einstieg

Gast #2808507
Lesenswert?

Hallo!

Ich würde mich gerne mal an ARMs versuchen. Jetzt stehe ich vor der 
Wahl: STM32F103 oder LPC1114 (möchte einen modernen Corex verwenden, 
also nicht ARM7).

Hab mir beide schon angesehen und würde zu dem LPC tendieren, der ist 
wahrscheinlich überschaubarer für den Anfang. Der STM32 kann zwar mehr, 
aber da muss man sich auch erst in die Peripheral Libraries einarbeiten.

Als IDE hätte ich entweder IAR Kickstart oder besser (weil keine 
Begrenzung) LPCXpresso gewählt.
Verwendet der LPCX den GCC?
Wie sieht es mit den Libraries der beiden aus? Wo finde ich da Infos, 
wie ich z.B. mit Interrupts umgehe bzw. eine Doku der gesamten Library? 
Bei AVRs gibts ja die sehr gute Doku zur avr-libc, wo auch gcc-Themen 
behandelt werden. (BTW: Ist die Interruptbehandlung Compilersache oder 
Aufgabe der Library? Mir sind die Abgrenzungen da nicht so klar)

Muss ich bei den beiden Umgebungen mit Startup und Linker beschäftigen 
oder geht das automatisch wie beim AVR?

Danke euch!
#2808678
Lesenswert?

> Ich würde mich gerne mal an ARMs versuchen. Jetzt stehe ich vor der
> Wahl: STM32F103 oder LPC1114 (möchte einen modernen Corex verwenden,

Was verstehst Du unter "modern"?

Der stm32f103 kann nicht gleichzeitig CAN und USB, der lpc1114 ist ein 
Cortex-M0. Manche würden sagen, dass das nicht unbedingt modern ist.

> Der STM32 kann zwar mehr,
> aber da muss man sich auch erst in die Peripheral Libraries einarbeiten.

Diese "libraries" gibt es auch für den/die LPCs. Das wäre kein 
Unterschied.

Fire Eagle schrieb:
> Als IDE hätte ich entweder IAR Kickstart oder besser (weil keine
> Begrenzung) LPCXpresso gewählt.

LPCXpresso hat auch eine Begrenzung, m. W. liegt diese bei max. 128kb 
Flash zum Debuggen. Bei dem genannten lpc wohl kein Problem.
Beides ist keine "freie" SW - somit würde ich sagen, dass beide begrenzt 
sind. make und Editor funktionieren tadellos als IDE.

> Wo finde ich da Infos,
> wie ich z.B. mit Interrupts umgehe bzw. eine Doku der gesamten Library?

Es gibt genügende Beispiele zusammen mit den libraries.

> Ist die Interruptbehandlung Compilersache oder
> Aufgabe der Library

Es ist eher Deine Sache ...

> Muss ich bei den beiden Umgebungen mit Startup und Linker beschäftigen
> oder geht das automatisch wie beim AVR?

Vermutlich liefern die das mit. Wer sich freier bewegt, wird um dieses 
Thema nicht herumkommen. Ich verstehe allerdings nicht, was daran so 
schlimm sein soll. Wer mit AVR GCC PROGMEM zurecht kommt, wird das auch 
überstehen :-) Im Gegensatz zu PROGMEM ist das relativ allgemeines 
Wissen, was einem auch auf anderen Architekturen wie msp430, PIC32, 
Renesas RX sehr hilfreich sein kann - in diesen Fällen habe ich von der 
Erfahrung rund um Startup-Code und Linker-Skripten sehr profitiert.
Moderator Persönliche Seite #2809068
Lesenswert?

Fire Eagle schrieb:
> Bin gerade dabei, mich weiter "durchzuforsten".
> Stimmt es, dass ich CMSIS brauche, um überhaupt mit interrupts arbeiten
> zu können?

Vielleicht noch eingeschoben: Wir kommen auch von der AVR-Schiene und 
beschäftigen uns jetzt knapp drei Monate nebenher mit dem STM32F4, sind 
also auch noch Einsteiger.

Du kannst, musst die Bibliotheken aber nicht benutzen.

Grundsätzlich kannst Du wie bei den AVRs auch direkt in die Register 
z.B. der UART-Schnittstellen schreiben. Die entsprechenden 
Registerdefinitionen gibt es auch. Wenn es später richtig schnell sein 
muss, dann macht man das auch so und umgeht die teuren Funktionsaufrufe.

Zu der Peripheral Library von ST gibt es ganz unterschiedliche 
Meinungen. Die einen verdammen sie in Grund und Boden, andere finden sie 
zumindest zum Einstieg hilfreich (dafür sind sie laut ST auch 
hauptsächlich gedacht).

Ich persönlich finde sie ganz hilfreich. Ohne die Structs verliert man 
mMn sehr schnell den Überblick darüber, was man denn nun überhaupt in 
welches Register schreiben muss, um ein Hardwaremodul zu initialisieren.

Den Startup-Code kannst Du natürlich auch selbst schreiben, aber 
zumindest beim STM32F4 muss man erstmal die Taktversorgung etc. 
einrichten. Das ist doch etwas mehr Arbeit als beim AVR.
Der mitgelieferte Startup-Code ist schon nah am Optimum - und bei dem 
reichlichen Platzangebot (1MByte Flash beim STM32F407) interessiert das 
nicht mehr wirklich ;-)

Chris D.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren