Forum: Mikrocontroller und Digitale Elektronik STM32 ST-Library Einstieg


von Joel B. (Firma: µGFX) (tectu)


Lesenswert?

Moin Moin,

Ich bin gerade dabei mich in die STM32 Artikel auf diesere Seite 
einzulesen. Inzwischen habe ich die entsprechende Library von 
STmicroelectronics gedownloaded und wollte das erste mal über GNU ARM 
kompilieren.
Jedoch ereilte mich schon bald die erste Fehlermeldung:
1
stm32f10x.h:80:3: error: #error "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"

Dass ich nun irgend wo meinen Controller (STM32F100RB) definieren muss, 
ist mir zwar klar, jedoch noch nicht genau wo ich dass in der 
stm32f10x.h machen muss. In Zeile 80 ist es nicht, da ist 
(logischerweise) die #error aufgeführt.
Könnt ihr mir da weiter helfen? Muss ich selber ein globales #define 
hinzufügen?



Greez Tectu

von holger (Gast)


Lesenswert?

>Dass ich nun irgend wo meinen Controller (STM32F100RB) definieren muss,
>ist mir zwar klar, jedoch noch nicht genau wo ich dass in der>
>stm32f10x.h machen muss. In Zeile 80 ist es nicht, da ist
>(logischerweise) die #error aufgeführt.

Logischerweise vor der Zeile.

>Könnt ihr mir da weiter helfen? Muss ich selber ein globales #define
>hinzufügen?

Ja, am besten in den Compileroptionen.
Irgendwas mit -DSTM32???_VL für ValueLine?
Sorry habs grad nicht im Kopf.

von Tecnologic (Gast)


Lesenswert?

Moin,

Wenn du über dem Fehler in der Header guckst, sind dort die defines auf 
gefüht aber auskomentiert, dort kannst du einen Standard definieren, ich 
würde aber in den Compiler Optionen den Define hinzufügen. Einfach das 
STM32_XXX_MD_VL oder so kopieren, und füge dann auch gleich da das 
USE_STD_PERPHLIB oder so ein sonst nimmt er das Lib nicht.

Oder du wartest. Ich wollte im Juni mal n Artikel über die Einrichtung 
von Eclipse mit CodeSourcery schreiben.

MfG

Tec

von Joel B. (Firma: µGFX) (tectu)


Lesenswert?

Vielen Dank,

Das hat soweit schonmal hingehauen ;)

Nun stehe ich noch vor dem Problem, dass die Librarys nicht in einem der 
Standardverzeichnisse liegen, sondern in meinem FireFox 
Downloadverzeichnis. In welches Verzeichnis muss ich diese kopieren? 
Kann ich das so wie andere Programme über export machen?
1
 export PATH=$PATH:/home/tectu/projects/arm/toolchain/gnuarm/bin/

Ich nutze Linux, Kubuntu 10.10.


Greez Mr. Anderson

von Joel B. (Firma: µGFX) (tectu)


Lesenswert?

Kann mir da noch jemand helfen?


Greez

von Ch D. (chrisu) Benutzerseite


Lesenswert?

Hier werden einige deiner Fragen geklärt: http://stm32.spacevs.com/
Ich hoffe das hilft dir weiter.

von Alex E. (tecnologic) Benutzerseite


Lesenswert?

Hi

Mr. Anderson schrieb:
> Vielen Dank,
>
> Das hat soweit schonmal hingehauen ;)
>
> Nun stehe ich noch vor dem Problem, dass die Librarys nicht in einem der
> Standardverzeichnisse liegen, sondern in meinem FireFox
> Downloadverzeichnis. In welches Verzeichnis muss ich diese kopieren?
> Kann ich das so wie andere Programme über export machen? export 
PATH=$PATH:/home/tectu/projects/arm/toolchain/gnuarm/bin/
> Ich nutze Linux, Kubuntu 10.10.
>
>
> Greez Mr. Anderson

Wo das Lib liegt ist egal, du muss halt nur die Include Pfade setzen in 
deiner Ide.

Dabei auch an das Linker-Skript und das Startup-File denken

Mfg

Tec

von Joel B. (Firma: µGFX) (tectu)


Lesenswert?

@chrisu okay, die seite wird schonmal gebookmarked

@Tec: Ich verwende keine IDE, konsole und wenns sein muss ein anderer 
Editor
      als vi tuts ja auch ;)

von Alex E. (tecnologic) Benutzerseite


Lesenswert?

HI

Ok, das machen eher weniger Leute, aber wenn das so ist hast du ein 
Makefile
und in diesem legst du die SRC Dateien und die INC-Dateien fest. Es gibt 
im Netz ein Beispiel Projekt mit Elmchans Fat-Lib dort ist auch das 
Stlib eingebunden, findest du im STM32 Artikel unter Demo-Projekte. Die 
Makefile ist super gemacht, als Vorlage. Da kannst du dir auch die 
Einstellungen für das Startup-Skript und Linker-File ansehen. Das musst 
du in der Makefile auch regeln. Nimm aber am besten ein LinkerFile das 
dein Programm in den Flash linkt. Du kannst das beim Cortex auf in den 
Ram linken blos dann ists beim Power off weg. Zum spielen gut aber sonst 
auch nicht.

Ich hoffe ich konnte helfen. Ich persönlich habe auch mit dem Makefile 
gearbeitet, aber jetzt mache ich alles mit Eclipse und lasse das 
Makefile vom
Arm plugin generieren.

MfG

Tec

von Joel B. (Firma: µGFX) (tectu)


Lesenswert?

Hi Tec,

Du konntest auf jeden Fall helfen!
Ich komme halt von der ARM sparte und da geht das mit vi recht gut.
So wie ich das sehe lohnt sich ein umstieg auf Eclipse in dem Fall?

Vielen Dank


Greez Tectu

von Joel B. (Firma: µGFX) (tectu)


Lesenswert?

Sry, wollte schreiben: "Ich komme halt von der AVR Sparte..."

von Alex E. (tecnologic) Benutzerseite


Angehängte Dateien:

Lesenswert?

hi,

Das musst du entscheiden, ich mag Eclipse als Editor mit dem neuen Arm 
plugin
geht auch die Konfiguration der Toolchains ganz gut, früher musste ich 
die Makefiles selber schreiben und habe dazu die Vorlage aus dem Projekt 
genommen. Ich hab die mal mein aktuelles Template angehängt. Rein 
theoretisch müsste es Plattform unabhängig sein da ich nur Workspace 
Paths drin habe. Du brauchst dafür Eclipse CDT, das Arm plugin, vllt das 
GDB Hardware debugging plugin wenn du mit JTag auf den Controller willst 
und eine Toolchain ich nehme Codesourcery g++ lite

Mein J-Link sollte konfiguriert sein. beachte aber das ich unter Win 
arbeite
kann also sein das ein paar Pfade nicht simmen bei dir.

Probiers einfach.

MfG

Tec

von Alex E. (tecnologic) Benutzerseite


Lesenswert?

Das ist ja kein Ding ich habe auch mit AVRs und PICs angefangen. Wenn du 
einen Cortex oder anderen ARM verwendest musst du halt nur mehr lesen 
und es geht etwas mehr Zeit drauf. Man lernt aber auch viel.

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
Noch kein Account? Hier anmelden.