Hallo zusammen
Ich habe zuvor mit Atollic True Studio gearbeitet.
Leider reichten mir die 32KB Codebeschränkung nicht aus.
Nun bin ich auf CrossWorks umgestiegen.
[off-topic]
Übrigens, Atollic bietet keine vergünstigte Lizenz an. Derzeit (bis ende
Jahr) kostet eine Volllizenz 1600€ danach wieder 2000€!
Educational Lizenzen gibts nur ab 10 stk und auch nur wenn eine UNI oder
sonstige Insitution kauft und zusätzlich noch Vollizenzen kauft.
[/off-topic]
Folgendes Problem:
Ich möchte die StdPeripheralLibrary von ST nutzen.
Dazu habe ich mir die Ordnerstruktur von Atollic abgeschauf bzw.
übernommen.
In meinem Projekte Ordner befindet sich nun ein Ordner namens Libraries
Darin befindet sich die Lib.
Ich habe bei Crossworks rechtskklick auf mein Projekt -> Properties ->
oben rechts Private/Common ausgewählt und bei UserDefined Includes
folgendes angefügt:
$(ProjectDir)/Libraries/STM32F10x_StdPeriph_Driver/inc
$(ProjectDir)/Libraries/CMSIS/CM3/CoreSupport
$(ProjectDir)/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x
Das gesamte includes sieht so aus:
$(TargetsDir)/STM32/include <---- Dise waren scho da!
$(TargetsDir)/CMSIS_3/CMSIS/Include <---------
$(ProjectDir)/Libraries/STM32F10x_StdPeriph_Driver/inc
$(ProjectDir)/Libraries/CMSIS/CM3/CoreSupport
$(ProjectDir)/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x
In menem main.c erkennt crossworks dadurch ein include mit
1
#include<stm32f10x_rcc.h>
Aber wenn ich nun
1
RCC_DeInit();
mache, bekomme ich die Meldung "undefined reference to 'RCC_DeInit'
Weshalb den das? Muss ich den Ordner mit den C-Files auch ins
UserDefinedIncludes mitaufnehmen?
Anbei meine jetztiges Projektverzeichnis (damit ihr die Struktur sehen
könnt=)
Bin wirklich über Hilfe dankbar!
Dr. Sommer schrieb:> .c Files werden nicht included. Füge sie nur zum Projekt hinzu> damit> sie mit kompiliert werden.
CrossWorks kann nun builden! Danke
ABER... Wenn ich rechtsklick auf 'RCC_DeInit()' mache und
"Go to Definition" wähle, sagt er mir dass er die Definition nicht
findet.
Was soll das CrossWorks?
Und weiss vielleicht noch jemand ob ich etwas aktivieren kann, dass mir
CrossWorks anzeigt ob ein #if erfüllt ist oder nicht?
Eclipse markiert ja automatisch die nicht aktiven Bereiche grau.
Sowas vermisse ich sehr!
Auch vermisse ich das springen zur definition mit ctrl+Mausclick
und die Autovervollständigung mit ctrl+leertaste schein es in CrossWorks
auch nicht zu geben oder mache ich was falsch?
Anscheinend hätte ich spaaren sollen für die 1600€ Atollic ;)
Claudio Hediger schrieb:> Was soll das CrossWorks?>> Und weiss vielleicht noch jemand ob ich etwas aktivieren kann, dass mir> CrossWorks anzeigt ob ein #if erfüllt ist oder nicht?>> Eclipse markiert ja automatisch die nicht aktiven Bereiche grau.> Sowas vermisse ich sehr!>> Auch vermisse ich das springen zur definition mit ctrl+Mausclick> und die Autovervollständigung mit ctrl+leertaste schein es in CrossWorks> auch nicht zu geben oder mache ich was falsch?>> Anscheinend hätte ich spaaren sollen für die 1600€ Atollic ;)
Wenn das alles ist was du von einer IDE erwartest, dann bist du bei
Crossworks wirklich falsch. Wenn ich aber sehe was du bis jetzt für
Fragen gestellt hast, glaube ich kaum dass du überhaupt einschätzen
kannst ob eine IDE gut ist oder nicht. Wer bei deinen trivialen
Problemen schon nach Hilfe schreit sollte sich mit Kritik an der Arbeit
anderer zurück halten.
Meistens ist der Editor bzw. die Eingabehilfen das was die niedrigste
Priorität hat. Ist bei Keil auch nicht anders. Wer auf so was abfährt
sollte bei Eclipse bleiben oder CooCox. Und die die wirklich entwickeln
sind die meiste Zeit sowieso mit Denken beschäftigt. Da bringt es
zeitlich nichts wenn man den Quellcode mit 100 Anschlägen pro Minute
reinhackt... Viele alte Hasen, vor allem die die auf vielen Plattformen
unterwegs sind, benutzen sowieso für die normale "Schreibarbeit" ihren
Lieblingseditor und makefiles für Projekte und die IDE hauptsächlich für
die Fehlersuche/Analyse.
avr3 schrieb:> Viele alte Hasen, vor allem die die auf vielen Plattformen> unterwegs sind, benutzen sowieso für die normale "Schreibarbeit" ihren> Lieblingseditor
Erstklassige Idee!
Ich kann ja auch weiterhin Eclipse nutzen und einfach zum Compilieren
Crossworks!
Ausgezeichnet!
Dr. Sommer schrieb:> Oder du zahlst 0€ für gcc-arm-embedded und eclipse
Zum Quellcode schreiben sicher ganz nett, bei Debuggen gibst für die
meisten µCs nicht mal eine vernünftige Sicht auf die Peripherie. Das
stört die STM32-User aber eh nicht, da die meisten nur auf die Stm-Lib
Programmieren und somit nicht mal wissen wofür die Peripherie-Register
da sind. Was man nicht kennt vermisst man halt nicht.
Claudio Hediger schrieb:> Ich kann ja auch weiterhin Eclipse nutzen und einfach zum Compilieren> Crossworks!
Zum Compilieren braucht man weder Crossworks noch Eclipse. Ein Projekt
ist im meinen Augen erst dann fertig, wenn ich es ohne Abhängigkeit von
einer Entwicklungsumgebung mit den gnu-arm-tools übersetzt und lauffähig
bekomme. Nur das verschafft mir die Freiheit und Unabhängigkeit die ich
für mich will. Was währen der Entwicklung für Werkzeuge benutzt werden
steht auf einem anderen Blatt.
avr3 schrieb:> da die meisten nur auf die Stm-Lib> Programmieren und somit nicht mal wissen wofür die Peripherie-Register> da sind. Was man nicht kennt vermisst man halt nicht.
Da lehnst du dich nun aber ein bisschen weit aus dem Fenster!
Warum sollen alle User das Rad nochmals neu erfinden?
Die ST-Lib ermöglicht einen komfortablen Zugriff auf die Peripherie!
Wenn es dann mal nicht so läuft wie ich möchte, schaue ich
selbstverständlich auch in den entsprechenden Registern nach, ob den die
Bits auch so gesetzt sind wie ich möchte.
avr3 schrieb:> Claudio Hediger schrieb:>> Ich kann ja auch weiterhin Eclipse nutzen und einfach zum Compilieren>> Crossworks!>> Zum Compilieren braucht man weder Crossworks noch Eclipse. Ein Projekt> ist im meinen Augen erst dann fertig, wenn ich es ohne Abhängigkeit von> einer Entwicklungsumgebung mit den gnu-arm-tools übersetzt und lauffähig> bekomme. Nur das verschafft mir die Freiheit und Unabhängigkeit die ich> für mich will. Was währen der Entwicklung für Werkzeuge benutzt werden> steht auf einem anderen Blatt.
Wir sprechen hier von Hobbyprojekten und nicht von Berufsprojekten wo
man unendlich viel Zeit hat für die einarbeitung und dann noch die
umsetzung.
Ich mag mich nicht elends lange mit den nötigen tools rumschlagen, nur
damit dannach eine LED blinkt oder sonst was funtzt!
Claudio Hediger schrieb:> Die ST-Lib ermöglicht einen komfortablen Zugriff auf die Peripherie!> Wenn es dann mal nicht so läuft wie ich möchte, schaue ich> selbstverständlich auch in den entsprechenden Registern nach, ob den die> Bits auch so gesetzt sind wie ich möchte.
Die ST-Lib ist ein schlechter Witz. Schlecht oder gar nicht
dokumentiert. Aufgeblasen bis zum geht nicht mehr. Nimm einen Debugger
und steppe mal durch die Lib. Ist schon beachtlich was da selbst für die
simpelsten Sachen immer wieder aufgerufen wird. Langfristig wird bei den
Controllern wohl das selbe passieren wie im PC-Umfeld auch. Zig APIs
übereinander und ein "Hello World" braucht 10Mb und 5 Sekunden bis zu
Start nachdem es sich 120 verschiedene dlls reingezogen hat.
Ist aber wie immer meine eigene ganz persönliche Meinung.
avr3 schrieb:> Ist schon beachtlich was da selbst für die> simpelsten Sachen immer wieder aufgerufen wird.
Interessant wäre mal zu sehen was passiert wenn man mit Optimierungen
compiliert, die Aufrufe inlined werden, und die Berechnungen der Bits
etc. vom Compier vorgenommen werden. Vielleicht ist das, was übrig
bleibt, gar nicht so ineffizient.
Ansonsten gebe ich dir aber Recht, das API, der generelle Aufbau und die
Doku der Library sind extrem schlecht.
avr3 schrieb:> Die ST-Lib ist ein schlechter Witz. Schlecht oder gar nicht> dokumentiert.
Ja, die Lib kapiert nicht jeder. Aber wenn man es mal verstanden hat,
dann wird man es schätzen. Zumindest, wenn größerer Code gefordert ist.
Für eine Lichtschranke reicht auch ein Tiny.
Herbert schrieb:> Ja, die Lib kapiert nicht jeder. Aber wenn man es mal verstanden hat,> dann wird man es schätzen.
Oder hassen, weil man selber weiß wie man sie viel besser hätte
programmieren können, s.d. sie viel komfortabler gewesen wäre. Das kommt
halt raus wenn Firmen die nur mit Silizium umgehen können Software
produzieren.
avr3 schrieb:> Die ST-Lib ist ein schlechter Witz. Schlecht oder gar nicht> dokumentiert. Aufgeblasen bis zum geht nicht mehr.
Na ja, wenn man größere Projekte nicht versteht. :-D Dann bleibt man
bei seinem 8 Bit Spielzeug.
Die ST Lib ist eine tolle Erleichterung. Man würde ja selbst auch etwas
vergleichbares schaffen, um effektiv Code zu erzeugen.
Also ab in den Sandkasten und lass die großen Jungs arbeiten. ;-)
Dr. Sommer schrieb:> Oder hassen, weil man selber weiß wie man sie viel besser hätte> programmieren können
Du musst sie nicht benutzen! Schreib etwas besseres und stell es hier
ein. Ich bin gespannt. :-D
Herbert schrieb:> Ja, die Lib kapiert nicht jeder. Aber wenn man es mal verstanden hat,> dann wird man es schätzen.
Guter Witz. Die Lib wird bei st von irgendwelchen Studenten und
Praktikanten geschrieben, dementsprechend ist es auch geworden.
Uneffizient, sehr langsam (ja, auch mit Compileroptimierungen), gefühlt
10* komplizierter aufgebaut, als es eigentlich sein müsste. Für
Hobbyprojekte sicher nicht schlecht, aber wenn mir einer unserer
Entwickler soetwas vorsetzen würde, dann wäre er in zwei Wochen sicher
nicht mehr bei den Programmierern.
big boy schrieb:> Schreib etwas besseres
Schon längst passiert :-)
big boy schrieb:> und stell es hier> ein.
Damit Nullen, die von Tuten und Bl.... keine Ahnung haben hinterher auch
noch kostenlos und erschöpfend Support einfordern?? Vergiss es. Selber
lernen macht erst schlau...
big boy schrieb:> Also ab in den Sandkasten und lass die großen Jungs arbeiten.
Du meinst die dummen Jung's. Wer die stm32-lib gut findet kann nur
dieser Kategorie angehören oder keine Ahnung haben. Man kan sie nutzen.
Einverstanden. Aber Gut geht anders. Wie man eine größere Lib recht gut
schreibt könnt ihr mal bei mbed nachsehen. Vorausgesetzt die
Sprücheklopfer hier verstehen das überhaupt.
Die "großen Jungs" arbeiten ohnehin nicht ausschließlich mit STM32.
Sobald aber mehrerer verschiedene Controller zum Einsatz kommen, wird
man sich selbst eine Abstraktion für die Hardwarekomponenten die man
selbst einsetzt schreiben. Da das dann nur dem eigenen Zweck dient wird
es auch schlank und übersichtlich. Das aber auf den Müllhaufen ST32lib
aufzusetzten wäre wirklich das Letzte.
big boy schrieb:> um effektiv Code zu erzeugen
STM32lib und effektiv ist ein Widerspruch in sich.
Dennis schrieb:> Damit Nullen, die von Tuten und Bl.... keine Ahnung haben hinterher auch> noch kostenlos und erschöpfend Support einfordern?? Vergiss es. Selber> lernen macht erst schlau...
Dem kann ich mich anschließen. Wenn man sieht wieviel hier im Forum über
solche trivialen Dinge wie z.B. Tastenentprellung gepostet wird, hat man
manchmal das Gefühl hier sind nur Copykids unterwegs. Sich mal wirklich
Gedanken machen und erst dann um Hilfe bitten wenn man wirklich am Ende
ist, ist absolut die Ausnahme. Deshalb kann ich Dennis nur zu gut
verstehen, wenn er hier keinen Code posten möchte. Die einen Nörgeln
weil sie's nicht verstehen und hinkriegen und die anderen weil sie es
selbst viel besser können.
Hier steht aber nicht ein einzelner Programmierer in der Kritik sondern
ein Unternehmen. Und ja, es ist ein Armutszeugnis wenn man sieht wie
lieblos die STM32lib das zusammengehauen wurde.
Es ist mir ziemlich Latte, ob die Lib von Studenten programmiert wurde.
Ich war auch mal einer und besser als meine Chefs.
gettoblaster schrieb:> Hier steht aber nicht ein einzelner Programmierer in der Kritik sondern> ein Unternehmen. Und ja, es ist ein Armutszeugnis wenn man sieht wie> lieblos die STM32lib das zusammengehauen wurde.
Ich denke, dafür das Atmel das ganze von der Open-Source-Gemeinde
kostenlos in den Arsch gesteckt wurde, hat sich ST schon Mühe gegeben.
Wie auch immer.
Ich komme auch mit anderen Libs klar. Dafür sind sie ja da.
Dennis schrieb:> big boy schrieb:>> Schreib etwas besseres>> Schon längst passiert :-)
Das kenne ich auch. Das sind immer die, die es immer besser können und
wissen und dann doppelt solange brauchen und nicht mal den Mut haben, zu
zugeben, dass es am Ende umständlicher war.
Horrido
Herbert schrieb:> Ich war auch mal einer und besser als meine Chefs
Mehr brauchst du nicht sagen. Mit solchen Sprüchen ist dein Horizont
ausreichend beschrieben.
gettoblaster schrieb:> Das aber auf den Müllhaufen ST32lib> aufzusetzten wäre wirklich das Letzte.
Ich glaube Dir beim besten Willen nicht, dass Du diese Lib a) schon mal
gesehen und b) wenn doch, überhaupt verstanden hast. Aber gut. Man lenke
ein:
Bitte ein Beispiel einer besseren Lib (auch Deine, falls vorhanden). Die
Lib brauchst Du auch nicht veröffentlichen. Also nur ein
Anwendungsbeispiel in Gegenüberstellung mit einer Anwendung aus der
STLib. Wenn Du dann noch in der Lage wärst einen Code-Größenvergleich
aufzustellen, dann bin ich ruhig. Aber das wird ganz sicher nicht
passieren.
Herbert schrieb:> Ich glaube Dir beim besten Willen nicht, dass Du diese Lib a) schon mal> gesehen und b) wenn doch, überhaupt verstanden hast. Aber gut. Man lenke> ein:
Glauben sollte man in der Kirche. Bei uns in der Firma ist Wissen
angesagt :-)
Mit der st-Lib habe ich mich sowohl persönlich auseinandergesetzt als
auch mit dem FAE von st bestimmt zwei Stunden darüber unterhalten. Die
Lib wird von st ja auch nur als Entwicklungshilfe angeboten, vom
professionellem Einsatz ist bei st meines Wissens nie die Rede gewesen.
Wie dem auch sei. Wenn einer es im prof. Umfeld einsetzen möchte, so ist
das sein Bier. Solche Konkurrenz ist allseits beliebt :-)
Herbert schrieb:> Bitte ein Beispiel einer besseren Lib (auch Deine, falls vorhanden). Die> Lib brauchst Du auch nicht veröffentlichen. Also nur ein> Anwendungsbeispiel in Gegenüberstellung mit einer Anwendung aus der> STLib. Wenn Du dann noch in der Lage wärst einen Code-Größenvergleich> aufzustellen, dann bin ich ruhig. Aber das wird ganz sicher nicht> passieren.
Tue ich sehr gerne. Du baust mit der st Lib, ich mit meiner. Compiler:
Keil (gibt es auch kostenlos als Testversion). µC: STM32F051R8T6,
Anwendung: USART mit 32Byte Receive Buffer, 64 Byte Transmit Buffer, INT
gesteuert. Vorgabe: 921600 Baud, 8N1, CMSIS, industrielle Qualität :-)
Los gehts...
gettoblaster schrieb:> big boy schrieb:>> um effektiv Code zu erzeugen> STM32lib und effektiv ist ein Widerspruch in sich.
Effektiv heisst nicht wenig, sondern stabilen, wartbaren und in
kostenverträglicher Zeit erstellten Code. Wie lange braucht man die
Zeilen der ST Lib "nach zu schreiben"?
Dennis schrieb:> big boy schrieb:>> Schreib etwas besseres>> Schon längst passiert :-)
Und wo isses? Nur wieder heiße Luft von unseren Pantoffelhelden. ;-)