www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik [S]uche - STM32 - Crossworks Beispiel - STM32F105


Autor: Claudio H. (hedie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich versuche schon seit einigen Tagen ein Crossworks Projekt für einen 
STM32F105RB zu erstellen, zusammen mit der Firmwarelib 3.3 von ST


Doch leider bekomme ich es nicht hin.

Der Compiler findet immer Dateien nicht. zudem findet er die Funktion
Assert_Param nicht.


Hat vielleicht jemand ein Beispiel Projekt für mich?

Danke schonmal...

Autor: C.H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Push :)

Autor: Düsentrieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
push hlft nicht viel, da deine frage etwas diffus ist...
stmmen die einstellungen, wo der compiler die libs sucht usw ?
hast mal ein beispiel-programm als test compiliert?

Autor: Claudio Hediger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kann leider auch kein Test programm kompilieren...

Ich weiss leider nicht ob es an den Compiler einstellungen liegt.


Ich hab bei den User Defined Includes bei den Preprocessor einstellungen 
die Verzeichnisse inc / src und die des CMIS hinzugefügt

Leider meckert er das er assert_param nicht findet sowie diverse 
funktionen nicht.

Ich habe versucht die notwendigen dateien mit  #include einzubinden
oder diese bei sourcefiles dem projekt hinzuzufügen...

Erste variante klappt... jedoch nicht für Interrupts oder Timer da kennt 
er die nötigen bezeichner wie TIM2 nicht.

Autor: Markus Müller (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei mir ist die "stm32f10x_conf.h" eingebunden, diese hat dann alle .h 
Dateien der STM Lib.

Darin ist das Makro assert_param() definiert. Ich habe es nicht 
aktiviert:
/* #define USE_FULL_ASSERT    1 */

Autor: Düsentrieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
erstmal muss ein beispiel funktionieren !
was haste denn drin, in deinem prg?
..conf.h
..lib.h
..rcc.h
..it.h
..map.h
?

Autor: Claudio Hediger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich gehe folgendermassen vor:

----Vorbereitung----
1. Ich erstelle einen neuen Ordner namens Test
2. Ich kopiere aus dem Ordner der Firmwarelib 3.3.0 den ordner inc (aus 
library)
3.  Ich kopiere aus dem Ordner der Firmwarelib 3.3.0 den ordner src (aus 
library)
4.  Ich kopiere aus dem Ordner der Firmwarelib 3.3.0 den ordner CM3 (aus 
library/CMSIS)
5.  Ich kopiere den INHALT aus dem Ordner der Firmwarelib 3.3.0 das 
Beispiel GPIO/IOToggle (aus Project/STM32F10x_StdPeriph_Examples)

----Crossworks----
1. Ich Öffne Crossworks 2.0 mit Adminrechten unter Windows7
   -> Info: Ich habe bei Crossworks das Package für die FW3.3.0 
installiert!
2. Ich gehe auf: File -> New Project
3. Ich wähle: Generic STM32 -> An Executable for STMicroelectronics 
STM32
4. Ich wähle den Ordner Test als ziel und gebe den namen Beispiel ein -> 
Next
5. Ich wähle 6MHz und als Prozessor STM32F105RB -> Next
6. -> Next
7. Finish

8. Ich gehe bei Projekt auf Sourcefiles -> Rechtemaustaste -> 
Addexisting -> Wähle main.c aus dem ordner test

9. Ich öffne main.c mit doppelklick

10. Ich mache rechtemaustaste auf Project "Beispiel"

11. Ich wähle oben rechts: Configuration -> Common
12. Ich scrolle bis zu Preprocessor
13. Ich editiere User Include Directories
    -> Info: Dort steht bereits: $(TargetsDir)/STM32/include
14. Ich füge hinzu: inc/; src/; CM3;
15. Bestätige mit Ok
16. Bestätige mit Ok

17. Ich mache auf Projekt rechtemaustaste -> Build

Error: stm32f10x.h: No such file or directory
Error: stm32_eval.h: No such file or directory
Error: 'RCC_APB2Periph_GPIOA' undeclared (first use in this function)
Error: 'GPIO_Pin_All' undeclared (first use in this function)

Und noch ein paar weitere....

Habe mir mühe gegeben es so ausführlich wie möglich zu beschreiben....

Danke für eure Hilfe!

Autor: Claudio H. (hedie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So endlich wieder eingeloggt :)

Autor: Claudio Hediger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Push :)

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du solltest Deine Pfade relativ zu $(ProjektDir) anlegen. Das aktuelle 
Verzeichnis ist nähmlich mitnichten das Projektverzeichnis

Gruß
Tom

Autor: Mic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Claudio,

wollte mal nachfragen, ob Du das Problem mitlerweile gelöst hast...
ich möchte nämlich auch gerade im Vorfeld klären ob, und wie weit sich 
die Std_Lib von ST in Crossworks verwenden lässt, bevor ich dafür eine 
Lizenz kaufe.

Viele Grüße,
Mic

Autor: Claudio Hediger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Leider hat niemand mehr etwas geantwortet...

Somit ist es im Sande verlaufen :(

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du das mit den relativen Pfaden probiert? Bei mir läuft dsa system 
problemlos

Gruß
Tom

Autor: Claudio Hediger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein hab ich ehrlich gesagt nicht getestet...

Kannst du mir vielleicht eine Komplettes Beispiel Programm senden?

Also Ordner Mit allem drin als Zip... wäre meega nett...

Am besten an

claudio.hediger (aäääaatt) gmail.com :)

Danke

Autor: Mic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielleicht könntest du das beispiel auch hier reinstellen? würde mich 
auch interessieren...
ich finde die ST- Lib eingentlich sehr schön, wär prima, wenn man die 
auch in Crossworks verwenden könnte.

THX!

Autor: Claudio Hediger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich hab noch nichts bekommen :)

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte sehr, hier auf dem Silbertablett ;-)

STM32F10x Standard Peripherals Library kuck mal gleich am Anfang 
gibts nen neuen Abschnitt mit Link.

Gruß
Tom

Autor: Claudio Hediger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank

Hab es gleich Ausprobiert... doch leider klappts nicht :(

Hier die Fehler meldungen:

Building “ARM_LED_Test” in configuration “THUMB Flash Debug” — 5 errors, 
1 occurrence
  Compiling system_stm32f10x.c — 5 errors, 1 occurrence
    In file included from 
C:/Users/darkhedie/Desktop/cw/ARM_LED_TEST/../ST_StandardLib/CMSIS/CM3/D 
eviceSupport/ST/STM32F10x/stm32f10x.h:8073,
                     from 
C:/Users/darkhedie/Desktop/cw/ARM_LED_TEST/../ST_StandardLib/CMSIS/CM3/D 
eviceSupport/ST/STM32F10x/system_stm32f10x.c:33:
    stm32f10x_exti.h: No such file or directory
    stm32f10x_gpio.h: No such file or directory
    stm32f10x_rcc.h: No such file or directory
    stm32f10x_usart.h: No such file or directory
    misc.h: No such file or directory
Build failed

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, da weiß ich jetzt echt nicht mehr weiter wo das Problem sein 
soll. Ich hab bei mir das ganze ziemlich schnell (1Tag) am Laufen 
gehabt.
Ist eigentlich wirklich nicht so schwer.

Gruß
Tom

Autor: Mic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas Burkhart schrieb:
> Bitte sehr, hier auf dem Silbertablett ;-)
>
> STM32F10x Standard Peripherals Library kuck mal gleich am Anfang
> gibts nen neuen Abschnitt mit Link.
>
> Gruß
> Tom

1000 Dank Tom!
Ist ja wirklich auf dem Silbertablett serviert :)
Ich bin z.Zt. noch auf der "Suche" nach der richtigen IDE...
Wahrscheinlich werd ich auch auf CW setzen, bin noch am Infos zusammen 
suchen. Wollte net gleich die 30 Tage Testversion damit "verschwenden" 
die Lib einzubinden.

Also nochmal Danke!!!

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kein Problem!
Ich hab hier im Forum schon so viel Hilfe bekommen, da helfe ich auch 
gerne
Tom

Autor: Mic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Claudio Hediger:

So... hatte zunächst die selben Fehler wie Du...
hab dann zusätzlich noch unter
Project->Properties->Preprocessor Options->System Include Directories
hinzugefügt:
Ort von inc und src Ordner, d.h.
C:\...\STM32F10x_StdPeriph_Driver\inc
C:\...\STM32F10x_StdPeriph_Driver\src

Und die CMSIS Dateien
C:\...\CMSIS\CM3\CoreSupport
C:\...\CMSIS\CM3\DeviceSupport\ST\STM32F10x

vielleicht hilft Dir das auch?

Grüße,
MIC

Autor: Rooney Bob (rooney)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem mit assert_param konnte ich lösen indem ich folgende 
Preprocessor Definitions in den Einstellungen definiert habe:
USE_STDPERIPH_DRIVER
STM32F10X_HD
INITIALIZE_STACK

In diesem Fall wird in stm32f10x.h die Header stm32f10x_conf.h 
eingebunden, in der assert_param definiert ist. Sieh dir dazu die 
Beispiele an, die mit dieser Lib ausgeliefert werden.

In den Include Directories musst noch $(ProjectDir) definiert werden, 
damit die Header Datei gefunden wird.

Autor: Stefan H. (sekhet)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, ich habe ebenfalls dieses assert_param-Problem.

Ich habe mir zunächst dieses Beispiel 
[[Datei:CrossWorks_StandardLib_Setup.zip]] geladen und geöffnet. Da ich 
aber einen STM32f103 RB und keinen RE auf meinem Board habe, musste 
ich (glaube ich wenigstens) unter Project-Properties -> Build Options -> 
Target Processor den Prozessor-Typ ändern.
An dieser Stelle fangen wohl meine Problemchen an.
Kann man überhaupt so einfach das Target ändern?

Bekomme nun 5 ähnliche Fehler :
E:/...../../ST_StandardLib/STM32F10x_StdPeriph_Driver/src/misc.c:98: 
undefined reference to `assert_param'

ein #define USE_FULL_ASSERT hat leider auch nichts gebracht :(

@ Rooney Bob

Wie ich gesehen habe hast due diesen Fehler beseitigen können.
An welcher Stelle machst du die entsprechenden Eintragungen?
USE_STDPERIPH_DRIVER
STM32F10X_HD (in meinem Fall wohl STM32F10X_MD)
INITIALIZE_STACK



Gruß Stefan

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die entsprechenden #defines setzt Du am Afnag von

ST_StandardLib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h

INITIALIZE_STACK
Habe ich bei mir nicht gesetzt.

In

ST_StandardLib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c

Am Anfang Deinen CPU Takt setzen.

Gruß
Tom

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen danke, ich habe nicht daran gedacht einfach ein #define ... zu 
schreiben.
Bin davon ausgegangen, dass ich in den Crossworks-Einstellungen 
irgendetwas ändern müsste.

Werde es heute Abend direkt mal ausprobieren.

Gruß Stefan

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.