Hallo zusammen. Ich bin auf der Suche nach dem Einstieg in die Welt der Cortex-M3 Kerne. Ich bin mir auch sicher, dass es schon hunderte dieser Threads gab, aber die Suche hat für mich nichts befriedigendes ergeben. Ich habe erfahrungen in der Programmierung von 8bit PIC Mikrocontollern und möchte nun auch einmal die Welt der deutlich potenteren Hardware kennen lernen. Ich habe mir vor kurzem ein Eval Board von Keil gekauft, auf welchem ein STM32F107VC16 sitzt. Ich weiß das dieser recht mächtig ist, allerdings bin ich der Meinung das man damit so ziemlich alles testen kann und auch mal jede Form von Schnittstelle ausprobieren kann, wenn es nötig ist. Als Entwicklungsumgebung hab ich mir jetzt einmal µVision 4 angeschaut und zum anderen die Atollic Lite Umgebung. Ich denke ich werde mich erstmal mit der Atollic beschäftigen, da mich diese irgendwie mehr anspricht. Nichts desto trotz komm ich nicht so wirklich weit. Ich bin deshalb auf der Suche nach einer schönen Einsteigerseite, wie www.sprut.de oder www.fernando-heitor.de wo einem für den Einstieg einmal erklärt wird, welche Register man wann setzen muss. Wie ich die Konfiguration vornehme und wie ich z.B. einfach einen Pin setze. Gibt es sowas überhaupt für diese Kerne oder gibt es irgendwo gute Einsteigertipps? schöne Grüße Marco
Hier schon geschaut? http://www.mikrocontroller.net/articles/STM32 Unten findet man Links, z.B. zu STM32Circle
Den Artikel hab ich schon gleesen, allerdigns hat ich mir den link zu stm32circle noch nicht angeschaut. Über was auf deutsch würd ich mich aber auch noch freuen
Marco Schulze schrieb: > Über was auf deutsch würd ich mich aber auch noch freuen Gewöhn dich lieber ans Englisch. Bei den 8ern findet man ab und zu mal deutsche Info, aber bei den 32ern eher nicht. Auch Einstiegseiten sind seltener, wohl weil sich bisher vorwiegend jene ihnen widmeten, die Zeile-für-Zeile Tutorials nicht mehr benötigen. Beispielcode findet sich allerdings durchaus. Bei ST, m.W. auch bei Keil, ... Weiss nicht ob auch bei Atollic.
Hallo, Schau dir mal unter http://www.st.com/mcu/modules.php?name=mcu&file=familiesdocs&fam=110&doc=76 die STM32F10x_StdPeriph_Lib an. Das Zip-File enthält neben den Quellen auch eine sehr gute Doku zu den einzelnen Modulen und jede Menge an Beispiel-Code. Gruß Torsten
Ja gut. Ich gewöhn mich auch an Englisch, da hab ich nicht das große Problem mit. Ich brauch eigentlich auch kein Zeile für Zeile, aber so ein paar Einstiegsinfos, was gesetzt werden muss und ähnliches wären halt schön gewesen. Irgendwoher müssen die Infos ja kommen. Ich hatte mir bei st mal den Programmers Guide runtergeladen, dann werd ich mich da mal durchwühlen.
Das sind die grundlegenden Tipps für Umsteiger: http://www.mikrocontroller.net/articles/STM32#Tipps_f.C3.BCr_Umsteiger_von_Atmel.2FPIC.2F8051 Wenn man die beherzigt, dann kommt man schon klar. Ansonsten ist bei der Standard Pheripial Lib von ST jede Menge Beispiel dabei. (Link wurde ja bereits gepostet) Am besten die ST Lib verwenden, damit geht das proggen viel leichter und man muss sich nur wenig um die Register selbst kümmern.
Ahja gut, denn werd ich mich damit einfach mal versuchen. Erstmal besten dank, aber ich denk mal ich werd hier noch etliche Fragen stellen müssen, bis ich das ganze Ding selber am laufen. Ist halt schon ne Umstellung wenn man sich nicht mehr um alles selber kümmern muss.
Ein paar Dinge, die mir beim Einstieg sehr geholfen haben: .) Wenn du noch keinen Debugger hast, dann besorg' dir einen. Bei den 8bittern ist ein Debugger ein nettes Tool, aber man kommt mit ein bisschen Trickserei auch ganz gut ohne zurecht. Bei den 32bit Mikrocontroller hingegen ist ein Debugger meines Erachtens ein unverzichtbares Tool. Da kommt man mit dem "printf-Debugging" nicht sehr weit. .) Es gibt ne Menge verschiedener IDEs, die alle auf einen unterschiedlichen Anwenderkreis abzielen. Am Anfang würd' ich dir empfehlen ne einsteigerfreundliche IDE zu nehmen, die sich um die wichtigen Dinge(Stichwort: Linkerscripts) selbst kümmert. Gerade am Anfang, wenn du mit dem uC selbst zu kämpfen hast, sollte dir die IDE keine unnötigen Steine in den Weg legen. Bei vielen IDEs (u.a Keil) gibt's Demoversionen, die bis zu 32K ohne weitere Einschränkungen funktionieren - erst dann musst du richtig tief in die Tasche greifen. Doch wenn du mal mit dem uC vertraut bist und der Sourcecode wächst, kannst du immer noch die IDE wechseln. .) Wie schon von meinen Vorredner erwähnt, gibt's von ST eine Library, die viel Sourcecode-Beispiele mitliefert. Dennoch würd ich mich nicht blind der Library hingeben, sondern versuchen etwas hinter die Kulissen (also die Register) zu blicken. Auch wenn ich kein Freund der Library bin, mag sie ihre Daseinsberechtigung haben. Doch wenn man nach drei Jahren noch immer die Libray braucht um ne LED blinken zu lassen, dann sollte man sich vielleicht fragen ob man nicht etwas mehr Zeit mit dem Manual verbringen sollte... Ein guter Ansatz ist die Library als Ausganspunkt herzunehmen. Wenn ich zum Beispiel die SPI Schnittstelle des STM32 benötige, dann such ich mir das entsprechende Beispielprogramm von ST, analysiere dieses und schaue (zusammen mit dem Reference Manual) welche Register ich tatsächlich für mein Vorhaben benötige. .) Nutz' das Forum und dessen Suchfunktion. Es gibt hier im Forum ein paar Leute (u.a A.K), die sich wirklich gut mit dem STM32 auskennen. Also ruhig mal die Suchfunktion bemühen, wenns irgendwo Probleme gibt - oftmals findest du dort entsprechende Anregungen. Zum Abschluss noch ein paar Literatur-Tipps: STM32 Datasheet STM32 Reference Manual Cortex M3 Technical Reference Manual STM32F10xxx Cortex-M3 programming manual The Definitive Guide to the ARM Cortex-M3
Hallo. Also ich habe mir ein EvaBoard von Keil gekauft was den ulink-me jtag debugger bei hat, weil ich mir schon gedacht habe, dass ich diesen brauchen werde. Ohne Debugger würde ich bei den 8-bit Prozessoren so manchesmal die Decke hochgehen. Als IDE war µVision 4 dabei und das wollt ich auch erstmal benutzen. Ja ich werd mit der Zeit mit Sicherheit hinter die Kulissen schauen, aber erstmal wäre ich froh wenn ich überhaupt erstmal ein Projekt geschaut zusammengestellt bekomme. Ich suche momentan eigentlich mal nach einer Anleitung, die mir sagt, was ich alles brauche für ein einfaches Projekt und was nicht. Ich hab nämlich das dummer Gefühl, dass bei den ursprünglichen Projekten viel blödsinn drin ist.
Dieser "Blödsinn" in den ST Examples ist notwendig, um dem Benutzer einen möglichst reibungslosen Einstieg in die Programmierung der 32bitter zu ermöglichen. Zu Beginn würd' ich mal probieren, eine LED an einem Portpin aus - und einzuschalten. Wenn du auf die Library komplett verzichten willst, dann wird der Abschnitt "Reset and Clock Control(RCC)" und "General-purpose and alternate-function I/Os (GPIOs and AFIOs)" im Reference Manual interessant für dich sein.
Hi, Marco Schulze schrieb: > Hallo. > > Also ich habe mir ein EvaBoard von Keil gekauft was den ulink-me jtag > debugger bei hat, weil ich mir schon gedacht habe, dass ich diesen > brauchen werde. Ohne Debugger würde ich bei den 8-bit Prozessoren so > manchesmal die Decke hochgehen. > > Als IDE war µVision 4 dabei und das wollt ich auch erstmal benutzen. > > Ja ich werd mit der Zeit mit Sicherheit hinter die Kulissen schauen, > aber erstmal wäre ich froh wenn ich überhaupt erstmal ein Projekt > geschaut zusammengestellt bekomme. > > Ich suche momentan eigentlich mal nach einer Anleitung, die mir sagt, > was ich alles brauche für ein einfaches Projekt und was nicht. Ich hab > nämlich das dummer Gefühl, dass bei den ursprünglichen Projekten viel > blödsinn drin ist. mir ging es anfangs sehr ähnlich wie dir... In der 8Bit Welt zuhause. Assembler und C im Schlaf. Auch PC Anwenderprogramme habe ich halbwegs vernünftig hinbekommen. Dann kam der Einstieg in die 32Bit Mikroprozessorwelt... Mit den selben Problemen wie bei dir. Nur das mein allererster Kontakt gleich funktionieren musste. Es ging zum Glück aber nur um eine "Änderung" ;-) Jetzt nachdem ich mich vor einiger Zeit bereits etwas mit den ARM beschäftigt habe, bin ich vor kurzem nach über zwei Jahren abstinenz wieder damit angefangen. Passenderweise kam kurz nach dme Entschluss ein halbwegs günstiges Angebot für ein original STM32 Eval Board hier im Markt. Interesannterweise habe ich mir genau wie du erst einmal einfachen Beispielcode für die ganz simplen Abläufe gewünscht (z.B. LED Blinken) um zu sehen was überhaupt das minimum an Einstellungen ist. Habe auch nichts gefunden. Von Null anzufangen ist erst einmal ja schon etwas aufwändig. Da sind die ARMs ja schon recht anspruchsvoll. HAbe dann zuerst das gemacht was oben geschrieben wurde. Mir das Grundlegende durchgelesen, mich für EINE IDE entschieden. (Nutze zur Zeit IAR, da Keil die kompilierung der STM32Evalboard Firmware bereits wg. der Größe verweigerte) Dann habe ich mir die grundlegenden Programme selbst gemacht. Einfach die volle Firmware genommen angefangen mir den Code angesehen und ALLES rausgeworfen was nicht für die grundlegende Funktion benötigt wird. (Teilweise sind es ja komplette Dateien die du streichen kannst) Das völlig abgespeckte Demoprogramm das dann ausser den nötigen Grundlagen wirklich nichts mehr enthielt habe ich dann von Hand wieder langsam mit eigenen Code ergänzt. Also erst LEDs blinken lassen, dann abfrage der Taster (Ports einlesen), Ausgabe von TExten auf TFT (mit passender von STM zur Verfügung gestellter include, verändern dieser Datei damit auch das hier herumliegende kleine TFT funktioniert, bin jetzt gerade bei der seriellen Kommunikation und danach kommt dann die Audio Ausgabe) So kommt dann alngsam aber sicher schon ein recht guter Durchblick. Später kann man sich dann wirklich tief in die verschiedenen Klassen einanrbeiten, diese deiner HW anpassen und auch eigene Peripherie Klassen Schreiben. Der reine Programmablauf ist ja dann nur noch simples C(++) Bin aber auch noch voll in der Lernphase... Immerhin will ich demnächst ja einiges mehr machen als nur Firmware abzuänder... Gruß Carsten
Hallo. Das mit dem Blödsinn war nicht abwertend gemeint, aber mir fehlt momentan einfach noch ein bisschen der Überblick, welche Dateien ich am Anfang einbinden muss. So langsam taste ich mich da aber ran. Ich wollte am Anfang auch nichts weiter machen, als erstmal eine LED blinken zu lassen. Danach vielleicht mal den ADC auslesen und damit die Blinkgeschwindigkeit einstellen oder ähnliches. @Carsten Dann bin ich ja froh, dass ich nicht der einzige Depp bin, der nichts gefunden hat. Es ist doch eine arge Umstellung wenn man anfangen muss, sich einfach auf die bestehenden Strukturen zu verlassen. Ich werd mich aber definitiv mal auf das Experiment einlassen. Ich habe den großen Vorteil, dass bei mir kein Zeitdruck da ist, da ich mich vorbeugend schon einmal mit beschäftige. Nicht dass ich irgendwann drauf zu greifen muss und dann bei null anfange. Das ist mir zu stressig. Naja Ich meld mich wenn die erste LED blinkt, dann kommen bestimmt noch ein paar fragen. schöne Grüße Marco
Hi, Marco Schulze schrieb: > Das mit dem Blödsinn war nicht abwertend gemeint, aber mir fehlt > momentan einfach noch ein bisschen der Überblick, welche Dateien ich am > Anfang einbinden muss. So langsam taste ich mich da aber ran. ich kann dich verstehen. Am Anfang steht man wie der Ochs vorm Berg und wird von der Fülle an Informationen regelrecht erschlagen. Das wichtigste ist, dass du dir am Anfang nicht zu hohe Ziele steckst, sonst verlierst du schnell die Lust und wirfst das Ding in die Ecke ;-) Alles andere kommt dann mit der Zeit. Wenn du dran bleibst und immer mal wieder ein bisschen Zeit investierst, dann wirst du in 2-3 Monaten schon riesige Fortschritte wahrnehmen.
Hallo Marco, Hallo Carsten, Marco Schulze schrieb: > Naja Ich meld mich wenn die erste LED blinkt, dann kommen bestimmt noch > ein paar fragen. bin vor ein paar Monaten vor demselben Problem gesessen wie ich am besten starten kann. Hab hier eine kurze Intro erstellt, hoffe es hilft. http://www.mikrocontroller.net/articles/STM32_LEDBlinken_AtollicTrueStudio Beste Grüße, Lukas
Lukas Simma schrieb: > bin vor ein paar Monaten vor demselben Problem gesessen wie ich am > besten starten kann. Hab hier eine kurze Intro erstellt, hoffe es hilft. > > http://www.mikrocontroller.net/articles/STM32_LEDB... Als kleine Anregung: Ich würde das Delay mit dem Systick realisieren
Hallo Bernhard, in diesem Beispiel möchte ich das Minimum zeigen was nötig ist um mit der Std. Peripherie Library eine LED zum Blinken bringen. (Für mich war auch lange nicht klar was als Minimum benötigt wird). Das mit dem Systick soll dann in ein nächstes Introbeispiel incl. dem DeInit(). Bernhard hast Lust ein zweites Beispiel zu erstellen mit Verwendung des Systick ? Beste Grüße, Lukas
Beitrag #6765185 wurde von einem Moderator gelöscht.
Beitrag #6767976 wurde von einem Moderator gelöscht.
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.