Forum: Mikrocontroller und Digitale Elektronik CoIDE STM32F4xx_Framework


von Moritz M. (moritz_m72)


Angehängte Dateien:

Lesenswert?

Hallo,

Ich hab mal den Startup-Code usw, den die CoIDE für die STM32F4 
Controller generiert überarbeitet, weil ich meine, das er an machen 
Stellen etwas verwirrent ist. Das Framework lässt sich über die Datei 
stm32f4xx_Framework.h einbinden. Es werden nur die nötigsten Dinge 
erledigt, damit der Controller mit dem Internen Oszillator läuft. Vllt. 
könntet ihr euch das mal ansehen und schreiben was ihr davon haltet.

Moritz

von Moritz M. (moritz_m72)


Angehängte Dateien:

Lesenswert?

Hallo nochmal,

ich hab noch nen paar Sachen geändert.

Moritz

von Moritz M. (moritz_m72)


Angehängte Dateien:

Lesenswert?

Hallo,

ich hab das ganze noch weiter geführt. Mich würde wirklich eure Meinung 
dazu interessieren. Findet ihr das schwachsinnig oder gut? Das ganze 
Framework hat den Sinn den Startup Code für die STM32F40X und STM32F41X 
zu vereinfachen und übersichtlicher zu machen.
Es muss nur die stm32f4xx_Framework.h" eingebunden werden und das ganze 
Framework kann über die stm32f4xx_FrameworkConfig.h konfiguriert werden.

Moritz

von Horst (Gast)


Lesenswert?

Hallo Moritz,

dein Tutorial finde ich wirklich toll!
Vielen Dank dafür!

Kanst du vielleicht die Unterschiede in deinem Framework kurz 
beschreiben?
Was genau siehst du daran als Vorteil?
Habe da aber auch noch nicht selbst reingeschaut.

Gruß
Horst

von Moritz M. (moritz_m72)


Angehängte Dateien:

Lesenswert?

Hallo,

ich finde der Code den die CoIDE hinzufügt wenn man "CMSIS Boot" und "M4 
CMSIS Core" auswählt nicht so toll, weil:

-der aus verschiedenen anderen IDE's zusammen kopiert ist
(siehe z.B. startup_stm32f4xx.h ganz oben steht was von "Ride7")

-dann das manche Kommentare ein bisschen blöd sind
(z.B. ebenfalls in der startup_stm32f4xx.h, steht über der Vector Table, 
was von "Cortex-M3". (knapp daneben ist auch vorbei!!))

-und manche sachen sind einfach unnötig (z.B wird in der "core_cm4" 
__FPU_USED als 0 definiert. Dann wird in der SystemInit() ganz am Anfang 
die FPU aktiviert, wenn __FPU_USED gleich 1 ist. Und im 
Default_Reset_Handler() wird die FPU nochmal aktiviert, wenn __FPU_USED 
definiert ist.)

Deswegen hab ich das angepasst. Die Standard Peripheral Library und die 
CMSIS Lib hab ich so gelassen.

Außerdem nervt es immer in einzelnen Dateien irgendwelche defines 
anzupassen.

Ich hab nochmal ne neue Version angehängt und diese zur Repository der 
CoIDE hinzugefügt.

Moritz

von Moritz M. (moritz_m72)


Angehängte Dateien:

Lesenswert?

Sorry,

bin mit den Versionen durcheinander gekommen. Hier ist jetzt die 
endgültige Version 1.0.
In der Repository der CoIDE ebenfalls.

Moritz

von Horst (Gast)


Lesenswert?

Ah ok.
Vielleich währe das ein Hinweis/Änderungsvorsschlag an CooCox?1
Weiß ja nicht, wie da die Chancen auf eine Reaktion stehen...

von Moritz M. (moritz_m72)


Lesenswert?

Hallo,

ich hab es zur Repository hinzugefügt. Kann somit jeder selbst 
entscheiden was er benutzen möchte.

Moritz

von Horst S. (h3aau)


Lesenswert?

moin moin,

Anfänger was ARM angeht.

Habe hier Coocox 1.72 und STM32F4 Discovery.
Ich habe die Software web_sd_discovery aus dem Netz geladen ud bin dabei 
diese von STM32F10x auf STM32F4xx umzustellen.
Bin da schon gut vorran gekommen, nun hänge ich leider.

Wer kann mir da weiter helfen?

       [cc] C:\STM32\web_sd_st32F4xx\enc28j60.c:176:36: error: 
'RCC_APB2Periph_GPIOA' undeclared (first use in this function)
       [cc] C:\STM32\web_sd_st32F4xx\enc28j60.c:176:36: note: each 
undeclared identifier is reported only once for each function it appears 
in
       [cc] C:\STM32\web_sd_st32F4xx\enc28j60.c:196:30: error: 
'GPIO_Mode_Out_PP' undeclared (first use in this function)
       [cc] C:\STM32\web_sd_st32F4xx\enc28j60.c:182:30: error: 
'GPIO_Mode_AF_PP' undeclared (first use in this function)
       [cc] C:\STM32\web_sd_st32F4xx\enc28j60.c:189:30: error: 
'GPIO_Mode_IPU' undeclared (first use in this function)
       [cc] C:\STM32\web_sd_st32F4xx\mmc.c: In function 'mmc_init':
       [cc] C:\STM32\web_sd_st32F4xx\mmc.c:127:26: note: each undeclared 
identifier is reported only once for each function it appears in
       [cc] C:\STM32\web_sd_st32F4xx\mmc.c:146:35: error: 
'GPIO_Mode_AF_PP' undeclared (first use in this function)
       [cc] C:\STM32\web_sd_st32F4xx\mmc.c:150:35: error: 
'GPIO_Mode_IPU' undeclared (first use in this function)
       [cc] C:\STM32\web_sd_st32F4xx\mmc.c:197:28: error: 
'RCC_APB2Periph_GPIOC' undeclared (first use in this function)
       [cc] C:\STM32\web_sd_st32F4xx\mmc.c:127:26: error: 
'RCC_APB2Periph_GPIOB' undeclared (first use in this function)
       [cc] C:\STM32\web_sd_st32F4xx\mmc.c:136:35: error: 
'GPIO_Mode_Out_PP' undeclared (first use in this function)

Gibt es irgendwo eine Referenzliste oder so für die defines?

danke.

von Thomas W. (nomared)


Lesenswert?

Horst S. schrieb:
> moin moin,
>
> Anfänger was ARM angeht.
>
> Habe hier Coocox 1.72 und STM32F4 Discovery.
> Ich habe die Software web_sd_discovery aus dem Netz geladen ud bin dabei
> diese von STM32F10x auf STM32F4xx umzustellen.
> Bin da schon gut vorran gekommen, nun hänge ich leider.
>
> Wer kann mir da weiter helfen?
>
>        [cc] C:\STM32\web_sd_st32F4xx\enc28j60.c:176:36: error:
> 'RCC_APB2Periph_GPIOA' undeclared (first use in this function)
>        [cc] C:\STM32\web_sd_st32F4xx\enc28j60.c:176:36: note: each
> undeclared identifier is reported only once for each function it appears
> in
>        [cc] C:\STM32\web_sd_st32F4xx\enc28j60.c:196:30: error:
> 'GPIO_Mode_Out_PP' undeclared (first use in this function)
>        [cc] C:\STM32\web_sd_st32F4xx\enc28j60.c:182:30: error:
> 'GPIO_Mode_AF_PP' undeclared (first use in this function)
>        [cc] C:\STM32\web_sd_st32F4xx\enc28j60.c:189:30: error:
> 'GPIO_Mode_IPU' undeclared (first use in this function)
>        [cc] C:\STM32\web_sd_st32F4xx\mmc.c: In function 'mmc_init':
>        [cc] C:\STM32\web_sd_st32F4xx\mmc.c:127:26: note: each undeclared
> identifier is reported only once for each function it appears in
>        [cc] C:\STM32\web_sd_st32F4xx\mmc.c:146:35: error:
> 'GPIO_Mode_AF_PP' undeclared (first use in this function)
>        [cc] C:\STM32\web_sd_st32F4xx\mmc.c:150:35: error:
> 'GPIO_Mode_IPU' undeclared (first use in this function)
>        [cc] C:\STM32\web_sd_st32F4xx\mmc.c:197:28: error:
> 'RCC_APB2Periph_GPIOC' undeclared (first use in this function)
>        [cc] C:\STM32\web_sd_st32F4xx\mmc.c:127:26: error:
> 'RCC_APB2Periph_GPIOB' undeclared (first use in this function)
>        [cc] C:\STM32\web_sd_st32F4xx\mmc.c:136:35: error:
> 'GPIO_Mode_Out_PP' undeclared (first use in this function)
>
> Gibt es irgendwo eine Referenzliste oder so für die defines?
>
> danke.

z.b. in: stm32f4xx_gpio.h und stm32f4xx_rcc.h:
1
/** @defgroup RCC_AHB1_Peripherals 
2
  * @{
3
  */ 
4
#define RCC_AHB1Periph_GPIOA             ((uint32_t)0x00000001)
5
#define RCC_AHB1Periph_GPIOB             ((uint32_t)0x00000002)
6
#define RCC_AHB1Periph_GPIOC             ((uint32_t)0x00000004)
7
...

von Horst S. (h3aau)


Lesenswert?

moin moin,

danke für den Typ.
Habe mal die *.h Dateien des f10x mit dem f4xx verglichen.
Ich hoffe ich habe alles richtig ersetzt. Leider geht das nicht 1 zu 1.
Wenn ich nun noch den startup richtig hinbekomme kann ich das Testen.

von Horst S. (h3aau)


Angehängte Dateien:

Lesenswert?

moin moin,

ich komme leider nicht recht weiter.
ich hänge hier mal meine software rein.
bei der definition der SPI1 und 2 hänge ich fest.
im debug modus sehe ich das die ports initialisiert werden aber es 
werden keine daten per spi gesendet.

danke schon mal....

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.