Gast
#3863918
Hallo, welche Toolchain kann man für diese MCU verwenden? Gibt es irgendwo wenigstens header Files mit Register Definitionen? So ähnlich wie bei STM32 ? Danke und LG
|
Anzeige
|
XMC4500 Toolchain
Gast
#3863918
Hallo, welche Toolchain kann man für diese MCU verwenden? Gibt es irgendwo wenigstens header Files mit Register Definitionen? So ähnlich wie bei STM32 ? Danke und LG
Gast
#3863943
dave3 von Infineon hat alles was Du brauchst.
Gast
#3864018
Ist das nicht so, dass DAVE nur einen abstrakten Layer zur Verfügung stellt und man keinen Zugriff auf konkrete Register hat?
Gast
#3864079
Dave3 ist eine komplette IDE für den XMC von Infineon.
Gast
#3866343
Ich hab mir DAVE nun ein wenig angesehen. Mir ist aufgefallen, dass man sich ein Projekt scheinbar über "Apps" generieren lässt, und zwar über Wizzards, die einem (überspitzt formliert) alles abnehmen, was mit Lesen des Reference Manuals zu tun hat. Obwohl das ganz nett ist, würde mich vielmehr interessieren, wie man auf Low-Level Niveau arbeitet, d.h. "altmodisch" auf Register-Ebene. Interessanterweise habe ich im Web dazu keine Beispiele gefunden, außer wieder solche, die auf DAVE Apps basieren. Es wäre nützlich, z.b. einmal zu sehen, wie man einen ganz simplen Timer mit CC4 zum Laufen bringt, und zwar ohne Bunti-Bunti Clicki-Clicki... Nicht dass man Beispiele unbedingt braucht, aber bei anderen Controllern findet man zu jedem Thema irgendwo gute Beispiele - bei dem XMC scheinen die Uhren anders zu ticken... Hallo, ja richtig, die XMC Serie ist relativ schlecht dokumentiert. Klar gibt es unzählige reference manuals, aus denen man aber meiner Meinung nach auch nicht immer 100% schlau draus wird. Das Gute ist aber, dass es mit CMSIS eine Art Abstraktionsebene für die Perepherie gibt. Ist zwar auch ziemlich komplex, aber dafür auf viele ARM M Controller anwendbar. Ich nutze Keil µVision für ARM Controller. Da gibt es die nötigen Header Files als Abstraktionsebene für die einzelnen Register. Grüße Schau Dir mal die "xmc4500.h" an, da sind die ganzen Registerdefinitionen drin. Wenn Du DAVE nicht nutzen möchtest ist das Deine erste Anlaufstelle. Ansonsten nutze wenigstens CMSIS, einen ARM "zu Fuss" zu programmieren grenzt an Machoschismus. Wir haben das mal im Rahmen einer Abschlussarbeit für einen damals noch nicht auf dem Markt befindlichen gemacht.
Gast
#3866371
Unter STM32 verwende ich eine umfangreiche Peripheral Library, um auf Peripherals bequem zuzugreifen. Unter DAVE habe ich ein Headerfile gefunden, mit allen Registerdefinitionen: xmc4500.h Damit kann man arbeiten. Ich finde nur keine Beispiele... Eine CMSIS library ist mir aber entgangen. Ich finde in den Beispielprojekten nur automatisch generierten Code, der mich aber nicht "interessiert", da zu allgemein und zu abstrakt. Ich hätte gerne etwas zwischen diesen Extremen... Wo hast du die Peripheral Library denn her?
Gast
#3866372
Nico S. schrieb: > Schau Dir mal die "xmc4500.h" an, da sind die ganzen > Registerdefinitionen drin. hab ich gesehen > Ansonsten nutze wenigstens CMSIS woher nehmen? Michael W. schrieb: > Nico S. schrieb: > >> Ansonsten nutze wenigstens CMSIS > > woher nehmen? Ist bei Keil µVision und DAVE3 schon dabei. Du musst ja in DAVE3 nicht die DAVE-Apps nutzen. Es ist ja nur eine Option beim Projekt anlegen und eben später.
Gast
#3866382
Vielleicht hab ich eine falsche Vorstellung, was CMSIS bietet. Daher anders herum: Gibt es z.B. eine Library, mit der ich den UART oder eine CC4 konfigurieren kann? Unter STM32 gibt es hier viele nützliche Funktionen... Ich finde bei DAVE unter CMSIS einige Files wie core_cm3.h. Da ist aber nicht drin, was ich suche. Ich kenne den STM32 zwar nicht, aber es ist meiner Erfahrung nach alles bei CMSIS dabei. Schau mal http://www.keil.com/pack/doc/CMSIS/General/html/index.html an. Normalerweise läuft ARM-Entwicklung so - Funktionen der einzelnen Pins raussuchen (meistens 4-6) - Passende Register zu den Funktionen raussuchen mit Funktion (das sind nicht wenige) - Register einstellen (das ist schon Teil von CMSIS) - per Funktion von CMSIS drauf zugreifen. Dazu gibt es etliche Seiten im Netz, das gute an CMSIS ist das Du (fast) immer das gleiche programmierst egal welcher ARM darunter steckt. Ist nur etwas mehr Arbeit als bei ATMEL oder Dave.
Gast
#3866397
Ein Beispiel kann das vielleicht besser demonstrieren. Unter STM32 bin ich gewohnt, einen UART z.B. so zu konfigurieren:
Dazu gibt es c-Sourcen von STM, in die man auch reinschauen kann, was im Detail passiert. Alles transparent und einfach. Gibt es sowas auch für XMC?
Gast
#3866399
Nico S. schrieb: > Ich kenne den STM32 zwar nicht, aber es ist meiner Erfahrung nach alles > bei CMSIS dabei. Schau mal > http://www.keil.com/pack/doc/CMSIS/General/html/index.html > an. > > Normalerweise läuft ARM-Entwicklung so > > - Funktionen der einzelnen Pins raussuchen (meistens 4-6) > - Passende Register zu den Funktionen raussuchen mit Funktion (das sind > nicht wenige) bis hierher klar. Aber wo steckt bei DAVE eine CMSIS Library für den XMC, die das kann: > - Register einstellen (das ist schon Teil von CMSIS) > - per Funktion von CMSIS drauf zugreifen. > Ja, wenn Du CMSIS nutzt. Das beim STM32 scheint auch CMSIS zu sein, aber um das genauer zu sagen fehlen mir die Kentnisse zum STM32. Irgendwo im Netz gibt es eine PDF mit den ganzen Strukturen und Funktionen. Die stelle ich aber nicht hier ein wegen (c). Michael W. schrieb: > > bis hierher klar. > Aber wo steckt bei DAVE eine CMSIS Library für den XMC, die das kann: Moment ich wühle mal, dauert aber etwas. Ich nutze sonst immer µVision, bei DAVE3 bin ich erst am einarbeiten.
Gast
#3866415
Nico S. schrieb: > Michael W. schrieb: > >> >> bis hierher klar. >> Aber wo steckt bei DAVE eine CMSIS Library für den XMC, die das kann: > > Moment ich wühle mal, dauert aber etwas. Ich nutze sonst immer µVision, > bei DAVE3 bin ich erst am einarbeiten. Danke, würde mich über einen Tipp freuen. Ich habe aber bis jetzt das Gefühl, Infineon will, dass man mit DAVE arbeitet, und stellt keine solche Library zur Verfügung, da es nicht in das Konzept mit den APPs passt. Mehr als eine DSP Library finde ich nicht im DAVE Ordner (siehe Attachment). Das habe ich auch gesehen. Ich hab jetzt mal zur Probe ein UART-Projekt und DAVE3 mit den DAVE-Apps angelegt und mir die generierten Dateien angesehen. Die Funktionen darin kommen mir sehr bekannt vor. Nur das DAVE3 diese Source-Dateien mit der Endung .cdt und .hdt speichert. Alles sehr seltsam, anscheinend scheint Infinion die eigentlichen CMSIS-Bibliotheken in irgendwelchen Archiven zu verstecken. Ich werde mal die Tage die Entwickler anschreiben sowie mir die aktuelle µVision-Version herunter laden. Da soll der XMC4500 schon voll unterstützt werden. Ich arbeite so und so lieber mit µVision, Eclipse ist nicht so mein Ding. Jetzt habe ich mir das nochmal angesehen. Wenn Du mit DAVE3 ein Dave-Projekt anlegst und das Projekt generieren lässt entstehen genau die Dateien und Funktionen die Du haben möchtest. Diese kannst Du dann auch bequem bearbeiten und nutzen. Weiterhin geht der Export nach µVision und zurück. Diese liegen nach der Generation auch als .c und .h Dateien vor. Das einzige Problem ist eben das Du zig Dateien hast.
Gast
#3866695
Was meinst du mit "generieren"? Wie genau und wo liegen dann welche Dateien? Alles in allem erscheint mir das ganze eher unbrauchbar...
Gast
#3866757
Da ich mich hier offenbar im Kreis drehe, möchte ich es mal anders herum versuchen: Angenommen ich möchte mit einer CCU4 einen periodischen Interrupt generieren - Zählen bis 1000 und dann Interrupt auslösen - also eine ganz banale und einfache Aufgabe. Die Fragen an die Experten: -> welche "APP" nehme ich da? Und wie konfiguriere ich diese auf meine Bedürfnisse? Wenn Du noch ein paar Tage warten kannst schreibe ich mal zu Dave eine Anleitung. Nur heute und morgen ist es ungünstig.
Gast
#3866783
Ich finde es nur seltsam, dass es für eine so einfache Aufgabe scheinbar keine Lösung gibt, die nicht tonnenweise unnötigen Code erzeugt. Ich beobachte das ganze mal, aber ich denke ich werde mich vom Gedanken irgend etwas mit dieser Controller Familie zu machen in nächster Zeit verabschieden. Ich denke hier hat Infineon einen Weg eingeschlagen, der nicht praxistauglich ist. Danke für die Infos und liebe Grüße Michael Ja die haben es für einen "normalen" Programmierer etwas schwierig und gewöhnungsbedürftig gemacht. Für ARM-Einsteiger finde ich das ideal. Er brauch sich nicht um Register etc. zu kümmern, in der Hilfe zu DAVE3 steht alles was man zu den Apps brauch und es existieren zu vielen Themen Beispiele auf der Infineon Seite. VG Nico
Gast
#3866850
also definitiv kein Controller für den Hobby-Bereich... Ich bleibe da lieber bei meinem STM. Da gibt es auch eine Abstraktionslayer, aber man kann noch im Detail nachvollziehen, was dahinter passiert. Warum soll ich mir jedesmal Code für einen Ferrari erzeugen lassen, wenn ich bloß einen VW Golf benötige?
Gast
#3900842
Hallo zusammen, ich kann aus meiner bescheidenen Erfahrung sagen, dass ich mir IO-Funktionen des XMC4500 immer in drei Schritten erarbeitet habe. Víelleicht hilft es ja anderen: 1. Mit Hilfe von Apps bzw. fertigen Beispielprogrammen kann man zuerst festellen, welche Register überhaupt und in welcher Reihenfolge zu nutzen sind. Entsprechende Beispiele gibt es auch für die CCU4 (z.B. PWMSP001_Example1_RelaxKit). 2.Durch Ändern von App-Parametern kann man in einem zweiten Schritt feststellen, welche Registerinhalte sich verändern (mit dem Debugger durchsteppen) und welche Code-Abschnitte überhaupt durchfahren werden. 3. In einem dritten Schritt habe ich das Manual des XMC4500 und die Application Note zur CCU neben den Code gehalten, um nachzuvollziehen, was hier nun genau passiert (auch hier wieder mit Manual) und prüfe, ob der Code immer noch geht, wenn ich Code-Segmente in "meiner" Lösung weglasse. Denn die Apps decken alle Eventualitäten ab. Eigener Code kann sehr viel einfacher aussehen, wenn man sich auf das Notwendige konzentriert. Schwierig ist IMHO besonders das Verstehen von Bit-Feldern in Registern weil die "Verknüpfungsorgien" rechts des Gleichheitszeichens im generierten Code kaum zu verstehen sind. Und ja: ich bin Hobby-Entwickler. Grüße schnack Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|