Hallo,
um vielen den Neueinstieg zu erleichtern habe ich ein Template erstellt,
welches eine vollständig eingerichtete EmBlocks Umgebung enthält um
eigene Programme zu erstellen. Em::Blocks deswegen weil es schneller und
stabiler als CooCox ist, deutlich mehr Funktionen hat und fast an
UVision heranreicht und vor allem auch ohne Internet und auskommmt.
Ein Demoprojekt lädt sich direkt mit, was Zufallszahlen auf dem Display
ausgibt. Es ist zudem das Flashtool von ST installiert in der IDE
welches aber vom User noch selbst installiert werden mussm und unter
Tools/Edit ein Link darauf gelegt werden muss.
Eingebundene Repos:
- CMSIS F4 Stand 3.2015
- StdPeriphLibs Stand 3.2015
- Tilen Majerles Lib´s für STM32F4 Stand 3.2015
Die TM Libs deswegen weil sie trotz Erstellung mit uVIsion MDK von Keil
ein Compiler und IDE unabhängiges Konzept haben (defines.h beachten fuer
GCC!), auch ohne das Disco Board auf eigenen Designs anpassbar wären,
modular aufgebaut sind. Sie basieren noch auf den StdPeriphLibs (letztes
Update von ST war 3.2015), werden aber derzeit umgearbeitet, so dass sie
später auch ohne diese auskommen. Regelmässiges Update empfehlenswert.
Eine Portierung auf CubeMx ist nicht vorgesehen, um den Update Wahn in
Grenzen zu halten.
AnMerkung: Die Verwendung dieser Middleware macht den STM32 meiner
Ansicht nach schon etwas zum "Arduino", da die Hardware komplett
abstrahiert wird.
Linker Script modifiziert, nutzt das SDRAM direkt mit als Datenspeicher
wenn der Variable ein SDRAM vorangestellt wird (Achtung: Kein
Initializer! Wer das haben will muss den Startup Code anfassen)
Build Options:
- Flash Release (Size Optimized)
- Flash Debug
- RAM Debug
Linker bindet NewLib Nano Branch mit ein und die Math Libs standamaessig
(ggf. ändern)
Zusatz: Der Startup Code wird von CMSIS Libs fuer Atollic true Studio in
Asm verwendet. Ich habe unter /src jedoch noch einen in C beigelegt.
Wird dieser verwendet geschieht die Initialisierung des SDRAM
automatisch beim Startup mit über die system_stm32f4xx.c -> void
SystemInit_ExtMemCtl(void) (thanxs to clive1 für den richtigen Code).
Der dazu nötige GCC Define ist bereits als global definiert.
Die Project Options und alle #Defines sind global und lokal mit Bedacht
gewaehlt! Wer dran rumfummelt sollte wissen was er tut! Damit schießt
man
sich schnell das ganze Template ab.
Viel Spass!
Download (25MB)
https://www.dropbox.com/s/9gizmnv8d2t2y25/stm32f429_text_scroller.zip?dl=0
Gruss,
Christian
(der vom STm32F4 "fasziniert" ist und den Z80 drüber fast vergessen hat.
In der startup_stm32f429_439xx.s im cmsis Ordner ist noch ein Fehler:
.syntax unified
.cpu cortex-m4
.fpu fpv4-sp-d16
.thumb
muss es heissen.
oder man nimmt die src/startup_stm32f429x.c, völlig wumpe, sind beide
gleich, eine Asm, die andere C.
Hi Christian.
Dein Template Projeckt klingt gut, habe mir eben emBlocks instaliert zum
ausprobieren und wollte nun auch Dein Projekt downloaden, aber der Link
funktioniert nicht:
>https://www.dropbox.com/s/9gizmnv8d2t2y25/stm32f429_text_scroller.zip?dl=0>"Dropbox - Link nicht gefunden">"Die von Ihnen gesuchte Datei wurde entweder verschoben oder gelöscht."
Hallo Christian,
ich bin erst heute auf Deinen Beitrag aufmerksam geworden.
Leider bekomme ich die gleiche Fehlermeldung von Dropbox wie Peter S.
Danke!
Thomas
Gerhard O. schrieb:> Danke Christian,>> habe leider das gleiche Problem mit Dropbox...>> Gruss,> Gerhard
Sorry.... hatte die Datei gelöscht, kann ich aber gern wieder
einstellen. ich kann zwar vom Firmenrechner die Datei von zu Hause vom
NAS holen aber habe hier in Firma keine Hochlademöglichkeit bzw ist das
verboten.
Wartet daher bitte bis heute abend ca 20 Uhr, dann lade ich die wieder
hoch.
Naja, ist ja toll wenn du dein Projekt hier zur Verfügung stellst, ist
dann aber nicht die Idee von der Sache, dass Du die verlinkte Datei
wieder löschst!
Gegebenenfalls kannst Du einen neuen Link auf eine aktualisiertere
Version posten.
Christian J. schrieb:> Gerhard O. schrieb:>> Danke Christian,>>>> habe leider das gleiche Problem mit Dropbox...>>>> Gruss,>> Gerhard>> Sorry.... hatte die Datei gelöscht, kann ich aber gern wieder> einstellen. ich kann zwar vom Firmenrechner die Datei von zu Hause vom> NAS holen aber habe hier in Firma keine Hochlademöglichkeit bzw ist das> verboten.>> Wartet daher bitte bis heute abend ca 20 Uhr, dann lade ich die wieder> hoch.
Hallo Christian,
vielen Dank für Deine Mühe. Ich will bald von CooCox auf EM:Blocks
umsteigen und Deine Vorarbeit ist wirklich ein guter Start.
Gruss,
Gerhard
Gerhard O. schrieb:> von CooCox auf EM:Blocks umsteigen
Die wohl wichtigste Erkenntis seit der Sandkasten-Förmchen-Version 2
Beta .... ;-)
Bei Verwendung der TM Libs ist drauf zu achten, dass das ein
Privatprojekt ist. Es ist nicht jede neue Version kompatibel mit einer
älteren. Tilen bastelt da täglich dran und bevior man sich was Neues
einspielt sollte man das alte sichern.
"Kennenlernen" wird man den STM32 damit allerdings nicht, das ist wie
beim PC nur noch das API Interface.....
Christian J. schrieb:> Gerhard O. schrieb:>>> von CooCox auf EM:Blocks umsteigen>> Die wohl wichtigste Erkenntis seit der Sandkasten-Förmchen-Version 2> Beta .... ;-)
Ich verwende immer noch störrischerweise die V1.74 IDE und den 4.6
2012q4 GCC. Damit geht für mich alles 100% bei meinen F10X Projekten.
Diese Version vom GCC finde ich die Beste für mich.
>> Bei Verwendung der TM Libs ist drauf zu achten, dass das ein> Privatprojekt ist. Es ist nicht jede neue Version kompatibel mit einer> älteren. Tilen bastelt da täglich dran und bevior man sich was Neues> einspielt sollte man das alte sichern.
Danke für den Hinweis.
>> "Kennenlernen" wird man den STM32 damit allerdings nicht, das ist wie> beim PC nur noch das API Interface.....
Das stimmt. Allerdings habe ich viele meiner M3 APIs für den F103 zum
Teil auch selber gemacht und verwende die Peripheral library nur als
Beispiel und Referenz am Anfang wenn ich die Funktion noch nicht kenne.
Der wichtigste Teil der Library ist für mich die "stm32f10x.h" Datei mit
allen Definitionen der Register. Das meiste mache ich dann mit eigenen
Routinen und direkter SFR Zugriff. Für mich sind die Erstellung von APIs
oft der interessanteste Teil der Anwendung;-) Ich möchte allerdings
heuer auf den F429 umsteigen. Mit dem F407 habe ich auch schon ein paar
Sachen gemacht.
Ich lernte ursprünglich mit der unbegrenzten Atollic Lite TruStudio
Version. Die wurde spaeter auf 32KB begrenzt. Im Vergleich zu Atollic
ist Cooxox leider doch sehr begrenzt. Allerdings, in aller Fairness,
nicht schlecht wenn man nichts anderes hat. Aber man soll doch immer die
Augen nach besseren Tools offen halten. Sonst würde mich noch Imagecraft
ICC-V8 interessieren. Die arbeiten ziemlich intensiv daran.
Gruss,
Gerhard
>Ich möchte allerdings heuer auf den F429 umsteigen. Mit dem F407 habe ich>auch schon ein paar Sachen gemacht.
Mit dem F429 scheint Coocox aber immer noch auf Abwegen zu sein, einer
der Gründe, warum ich mit dieser IDE nicht mehr arbeiten möchte. Ferner
stört es mich, dass Coocox zu viele Feautures und Menupunkte von Eclipse
ausblendet und damit die ansich geniale IDE föllig verkrüppelt! (z.B.
mehrer Projekte gleichzeitig nebeneinander offen haben...)
Ok.Denk dran St-Link zu installieren und den Pfad richtig zu setzen,
sonst kein Flashen möglich. Deinen Pfad kenne ich ja nicht.
Der String muss dann ungefähr so ausschauen.
C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK
Utility\ST-LINK_CLI.exe
-P ${PROJECT_DIR}${TARGET_OUTPUT_DIR}${TARGET_OUTPUT_BASENAME}.hex
Christian J. schrieb:> Und? Konntet ihr was mit anfangen? Noch probleme oder so?
Ja,
nach der (erfolgreichen) Installation von Em::Blocks stellt sich mir
eine Anfängerfrage: Ist Dein Werk ein 'Template' oder 'UserTemplate'?
D.h. Installation (Win7) in
C:\Program Files (x86)\EmBlocks\2.30\share\EmBlocks\templates
oder
C:\Users\<user>\AppData\Roaming\EmBlocks\2.00\UserTemplates
(oder ?)
Wo setze ich den Pfad zu ST-LINK?
Danke schon mal vorab, und sorry für die dummen Fragen!
Thomas Sch. schrieb:> ach der (erfolgreichen) Installation von Em::Blocks stellt sich mir> eine Anfängerfrage: Ist Dein Werk ein 'Template' oder 'UserTemplate'?> D.h. Installation (Win7) in> C:\Program Files (x86)\EmBlocks\2.30\share\EmBlocks\templates> oder
Nein, es ist kein normales "User Template". Die ganzen Einstellungen
sind aber in der xml Datei abgespeichert, die im Projekt liegt. Es ist
ein Projekt wo alle Libs Stand 3.2015 mit dabei sind, die man braucht
und wo alle Einstellungen und Linkerscripte fertig gemacht sind. Mit
Klick auf die ebp Datei müsste es sich öffnen und ein Mini Projekt
sichtbar werden was sofort kompilierbar ist. Unter Verwendung von
StdPeriph Libs und den Libs von Tilen Majerle wird der STM32 mehr oder
weniger zum Arduino, allerdings auf Kosten dass man nur einen bestimmten
Funktionssatz hat. Man kommt schnell auf Lösungen ohne in die Register
rein zu müssen.
Der Pfad zu St Link wird unter Tools gesetzt und auch dort angepasst,
damit man 1-Click Flashen und Debuggen kann.
PS:
Ich bin damals mit "Rowley Crossworks" gross geworden, was aller Kritik
zum Trotze kein Klon von Eclipse ist und auch alle Libs des GCC von
denen selbst geschrieben wurden. (Wie ich las gehen die auch gerichtlich
gegen diese Behauptunngen vor). Rowley verwöhnt den User, alles läuft
out of the box, zig Analyse Tools, sogar lint ist dabei, grafischer
Memory Manager, UML Eingabe ... aber hat eben auch seinen Preis.
Und nach der erfolglosen Frickelei mit CooCox, was ohne Internet nicht
läuft, was ewig braucht und wo man nie weiss was im Netz liegt und was
auf der Platte bin ich dann über CodeBloxx zu EmBlocks gekommen. Auch
EmIDE von Segger läuft genauso, unterstützt aber mehr Prozessoren als
EmBlocks.
Und für "umsonst" ist EmBlocks echt klasse, natürlich kein uVision oder
was von IAR aber dafür auch keine 5000 Mäuse teuer.
Christian J. schrieb:> ..> Die ganzen Einstellungen sind aber in der xml Datei abgespeichert,> die im Projekt liegt.> Es ist ein Projekt wo alle Libs Stand 3.2015 mit dabei sind, die man> braucht> und wo alle Einstellungen und Linkerscripte fertig gemacht sind. Mit> Klick auf die ebp Datei müsste es sich öffnen und ein Mini Projekt> sichtbar werden was sofort kompilierbar ist. ..>> Der Pfad zu St Link wird unter Tools gesetzt und auch dort angepasst,> damit man 1-Click Flashen und Debuggen kann.
Danke!
Allerdings musste ich erst mal umsetzen, dass Du mit der xml-Datei die
ebp-Datei meinst (wenn ich richtig liege..)
CooCox hat mich auch nicht wirklich überzeugt, dass fliegt wieder unter.
Thomas Sch. schrieb:> einfach im Projektverzeichnis entpacken, und als Programm starten?
Ähm.... das ist ein Projekt, ja. Was soll man da starten? Man kann auf
das .ebp File doppelklicken, dann geht die IDE auf. Starten kann man nur
das ELF File nach dem Flashen.
Das war von mir falsch formuliert (zu schnell gesendet).
Irritierend war das anfängliche "Template" in Verbindung mit den seitens
Em::Blocks verwendeten Begriffen dafür.
Nochmals Danke!