CoIDE STM32F4xx_Framework

OP #3056861
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
Angehängte Dateien:
OP #3058578
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
Angehängte Dateien:
Gast #3060790
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
OP #3060861
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
Angehängte Dateien:
#3158736
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.
#3158804
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
...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren