Guten Tag an alle, ich hätte eine Frage zur Entwicklung mit dem Cortex M4. Bis jetzt habe ich nur auf Mikrocontrollern von Atmel entwickelt (ATmega, Xmega) und auch immer das Atmel Studio genutzt. Nun wollte ich in die Programmierung mit den Cortex M4-Mikrocontrollern einsteigen und habe mir dazu folgendes Board von TI gekauft: EK-LM4F120XL (https://estore.ti.com/Stellaris-LaunchPad.aspx). Die Projekte finden im Privaten statt, ich wollte jedoch auch möglichst viel von dem Wissen im baldigen Beruf, oder evtl der Bachelor-Thesis (derzeit noch Student) nutzen können. Daher hätte ich folgende fragen: 1. Welche Entwicklungsumgebung/Toolchain sollte ich verwenden, damit ich auch später von dem Wissen profitieren kann? Hängt das bei den ARM-Mikrocontrollern auch vom jeweiligen Hersteller (hier Texas Instruments) ab, was man verwenden sollte? 2. Gibt es für einen Cortex M4 Libraries, die jeder Entwickler für diese Mikrocontroller standardmäßig nutzt? Sind diese auch wiederum abhängig vom jeweiligen Anbieter? 3. Wie programmiert man heutzutage auch in der Industrie auf einem Cortex M4? Nimmt man sich das Datenblatt zur Hand und setzt dann alle entsprechenden Register "von Hand"? Oder gibt es dafür auch schon eine Art Framework mit USB-Stack, etc. wie beim Xmega mit dem Atmel Software Framework? Über eine Antwort würde ich mich freuen! Viele Grüße Kevin
Mach doch erstmal das Tutorial von TI. Das dürfte viele deiner Fragen beantworten. Außerdem rate ich dir nicht so ein willenloses Frettchen zu sein, selber denken macht klug :)
...und lade vorallem die StellarisWare. Da sind Treiber und etliche Demos enthalten.
Kevin M. schrieb: > 1. Welche Entwicklungsumgebung/Toolchain sollte ich verwenden, damit ich > auch später von dem Wissen profitieren kann? Hängt das bei den > ARM-Mikrocontrollern auch vom jeweiligen Hersteller (hier Texas > Instruments) ab, was man verwenden sollte? Verwende den CCS ( CodeComposerStudio) von TI. Den bekommst du zum Launchpad als Vollversion dazu. Und diese IDE wird auch durchaus in der Industrie eingesetzt. Kevin M. schrieb: > 2. Gibt es für einen Cortex M4 Libraries, die jeder Entwickler für diese > Mikrocontroller standardmäßig nutzt? Sind diese auch wiederum abhängig > vom jeweiligen Anbieter? Es gibt Libraries. Viele nutzen die auch. Und ja die sind abhängig vom Hersteller des µC, weil die alle Module im Chip außer dem ARM Core herstellerspezifisch sind. Kevin M. schrieb: > 3. Wie programmiert man heutzutage auch in der Industrie auf einem > Cortex M4? Nimmt man sich das Datenblatt zur Hand und setzt dann alle > entsprechenden Register "von Hand"? Oder gibt es dafür auch schon eine > Art Framework mit USB-Stack, etc. wie beim Xmega mit dem Atmel Software > Framework? In der Regel wird auf der Zielhardware entwickelt. 2 gründe dazu : 1. Man spart sich die Anpassungen von Devel Board zur Zielhardware. 2. Damit lässt sich die Zielhardware in einem Prüfen, Testen und Weiterentwickeln. Datenblatt natürlich, ohne das geht es auch mit dem Libraries nicht. Wieviel dann später im Code aus der Librarie stammt bzw. selbst codiert ist, hängt stark von dem vorhandenen Code ab der sich zum Teil über Jahre hinweg entwickelt hat.
1. Die konkreten Tools, Compiler und Libraries, die Du wählst, sind für zukünftige Projekte unerheblich. Dein Arbytegeber wird im Zweifel ganz was anderes wählen. Versteife Dich nicht zu stark auf eine Technologie oder einen Anbieter, sondern versuche, einen möglichst großen Überblick zu haben. Nur so bist DU dann überhaupt in der Lage, für ein bestimmtes Projekt die optimale Lösung zu erarbeiten. In diesem Forum gibt es sehr viele Leute, die nix anderes als AVR kennen, und die versuchen dann halt mit Gewalt alles damit zu machen, obwohl sie mit einer anderen Controllerfamilie viel einfacher/platzsparender/stromsparender/billiger davonkommen würden. Wenn ich sie darauf anspreche, heißt es "Ich habe mich hier gerade eingearbeitet und will nicht schon wieder was lernen müssen" Mit dieser Einstellung kommst Du im Job nicht weiter, da bekommst Du dann auch mal einen 8051-Core oder einen STM8 vorgesetzt, weil der so billig und stromsparend ist. Fazit: Lerne zu lernen. 2. Das Stichwort heißt CMSIS. ARM ist Wildwuchs. Der Prozessorkern ist die einzige Konstante, vor der Cortex-Ära hatte sogar jeder Hersteller seinen eigenen Interrupt-Controller, von Timern und anderen Dingen ganz zu schweigen. Mit Cortex ist der Interruptcontroller und ein Timer und etwas Basis-Infrastruktur auch im Basispaket enthalten, das jeder Chipfertiger implementieren muss. Dafür gibts CMSIS. Für die ganze Peripherie, die der jeweilige Chiphersteller beisteuert, hat selbiger in der Regel Bibliotheken, die Du benutzen kannst. Bei speziellen Dingen oder hohen Anforderungen wirst Du kritische Teile selbst implementieren, weil die Herstellerbibliotheken nicht sehr optimiert sind und auch möglichst generisch sein sollen. 3. Komplexe Sachen wie IP, USB oder Bluetooth werden meist dazugekauft. Deine Arbeitszeit ist im Zweifelsfall teurer als die Lizenzgebühren. fchk
wow vielen Dank schonmal für die ganzen Antworten! Damit sind eigentlich schon ein Großteil meiner Fragen beantwortet. Eine hätte ich noch: TI empfiehlt als Entwicklungsumgebung sowohl das bereits genannte Code Composer Studio, sowie Keil. Hat vielleicht schonmal jemand Erfahrungen mit diesen Entwicklungsumgebungen gesammelt und kann eine davon empfehlen, bzw davon abraten?
Das Keil-Zeugs wirst Du nicht bezahlen wollen. fchk
Wie gesagt: Lade Dir StellarisWare runter, der Startupcode ist für die grossen 4 dabei, und installiere halt eine Entwicklungsdemo. Entscheide dann halt nach Vorliebe oder Vorgabe.
Frank K. schrieb: > Mit Cortex ist der Interruptcontroller und ein Timer und > etwas Basis-Infrastruktur auch im Basispaket enthalten, das jeder > Chipfertiger implementieren muss. Dafür gibts CMSIS. Ergänzend dazu: Ich bin vor kurzem darüber gestolpert, dass TI z. B. die core_cm4.h gar nicht im Paket hat. TI kocht hier ein bisschen sein eigenes Süppchen, Details finden sich hier: http://e2e.ti.com/support/microcontrollers/stellaris_arm_cortex-m3_microcontroller/f/471/p/223330/790521.aspx Ansonsten finde ich die Beispiele in Beitrag "Stellaris ARM Launchpad, UART, Timer, DHT11 Sensor SW" und Beitrag "Stellaris ARM Launchpad, ADC, UART, DHT11, RFM12, LCD" hilfreich.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.