Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

STM32 e Keil

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

0
voti

[1] STM32 e Keil

Messaggioda Foto Utentesilvio93 » 22 apr 2013, 10:37

Buongiorno a tutti, sono nuovo del forum anche se è da un po' che lo seguo, passivamente.
Sto cercando di capire come programmare processori arm, nello specifico il 32f100rb della stm32 discovry.
Come compilatore ho deciso di usare keil, e qui iniziano i problemi, per ora sono riuscito a far funzionare gli esempi interni di keil (quelli della cartella stm32) e quelli presi dall kit di librerie ufficiali della stm. Poi da quelli ufficiali sono anche riuscito a modificarli senza problemi, es. provando a generare un PWM su di uno led della scheda, e fin qui tutto ok.
Il problema sorge quando voglio creare un progetto su keil da zero: dopo aver selezionato il micro, aggiungo lo startup e system_stm32f10x.c(preso da un esmpio delle librerie), e nel main.c(creato da zero) ci includo stm32f10x.h, fin qui tutto ok se provo a compilare con il main vuoto è ok. Però cosi facendo non ho nessuna libreira e dovrei programmare esclusivamente modificando i singoli registri. Quindi ho provato ad includere "stm32f10x_gpio.h", il file lo trova e sembra ok, anche scrivendo delle funzioni sembra riconoscerle, ma quando compilo mi da un errore "npt.axf: Error: L6218E: Undefined symbol GPIO_Init (referred from main.o).".
Questo è il main:
Codice: Seleziona tutto
#include <stm32f10x.h>
#include <C:\Users\Silvio\Desktop\STM ARM\Progetti keil\new project test\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h>
#include <C:\Users\Silvio\Desktop\STM ARM\Progetti keil\new project test\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h>





void init_GPIO(void){
   
    GPIO_InitTypeDef GPIO_InitStructure;
    /* GPIOD Periph clock enable */
  //RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
   
      /* Configure PD0 and PD2 in output pushpull mode */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_2;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
   
  GPIO_Init(GPIOD, &GPIO_InitStructure);
   
}
   

int main(){
   
init_GPIO();
   
   
}



Se qualcuno fosse in grado di illuminarmi...
Grazie in anticipo

P.S. Cercando in giro mi sembra di aver capito che il problema protebbe essere legato al fatto che non ho devinot la funzione "GPIO_Init", ma non saprei
Avatar utente
Foto Utentesilvio93
405 2 7
 
Messaggi: 26
Iscritto il: 21 apr 2013, 17:06

0
voti

[2] Re: STM32 e Keil

Messaggioda Foto UtenteTardoFreak » 22 apr 2013, 13:08

devi anche includere nel progetto i files sorgenti di libreria come stm32f10x_gpio.c altrimenti è ovvio che ti dia errore.
E poi ti consiglio anche di includere il core-cm3.c che contiene tutte le funzioni del CMSIS (che ti consiglio di cercare in rete di cosa si tratta).
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[3] Re: STM32 e Keil

Messaggioda Foto Utentesilvio93 » 22 apr 2013, 13:23

TardoFreak ha scritto:devi anche includere nel progetto i files sorgenti di libreria come stm32f10x_gpio.c altrimenti è ovvio che ti dia errore.


Ok, però aggiungendo i file.c otengo una serie di errori simili a questo
Codice: Seleziona tutto
"Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c(111): warning:  #223-D: function "assert_param" declared implicitly"


TardoFreak ha scritto:E poi ti consiglio anche di includere il core-cm3.c che contiene tutte le funzioni del CMSIS (che ti consiglio di cercare in rete di cosa si tratta).

Molto interessanti...
Avatar utente
Foto Utentesilvio93
405 2 7
 
Messaggi: 26
Iscritto il: 21 apr 2013, 17:06

0
voti

[4] Re: STM32 e Keil

Messaggioda Foto UtenteTardoFreak » 22 apr 2013, 16:32

Si, perché gli manca il file misc.c
Ma tu fa una cosa, capisciammè: inserisci nel progetto tutti i files della peripheral library e vivi felice. Anche perché se non li usi non ti vengono linkati e quindi non portano via spazio. ;-)
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[5] Re: STM32 e Keil

Messaggioda Foto Utentesilvio93 » 22 apr 2013, 17:28

Intanto grazie per le risposte così tempestive,
ho provato ad aggiungere tutti i file della libreria ( quelli nella cartella src) e il core_cm3.c. Però continua a darmi lo stesso problema di prima con la differenza che lo fa con tutti i file... quindi mi chedevo se era necessario modificare qualcosa come per il stm32f10x.h, dove devo decommentare il dispositivo che utilizzo.
Avatar utente
Foto Utentesilvio93
405 2 7
 
Messaggi: 26
Iscritto il: 21 apr 2013, 17:06

0
voti

[6] Re: STM32 e Keil

Messaggioda Foto Utentepierinter » 22 apr 2013, 17:38

Io ho avuto un sacco di casini con Keil e STM32, ma alla fine sono riuscire a risolvere.

Ho utilizzato la STM32 Discovery line
Avatar utente
Foto Utentepierinter
620 2 7 10
Expert EY
Expert EY
 
Messaggi: 1395
Iscritto il: 23 mar 2009, 0:05

0
voti

[7] Re: STM32 e Keil

Messaggioda Foto Utentesilvio93 » 22 apr 2013, 18:05

pierinter ha scritto:Io ho avuto un sacco di casini con Keil e STM32, ma alla fine sono riuscire a risolvere.

Ho utilizzato la STM32 Discovery line


non è che sapresti dirmi di preciso come hai risolto? grazie
Avatar utente
Foto Utentesilvio93
405 2 7
 
Messaggi: 26
Iscritto il: 21 apr 2013, 17:06

0
voti

[8] Re: STM32 e Keil

Messaggioda Foto UtenteTardoFreak » 22 apr 2013, 21:45

Domani ti risponderó. Devo mettere mano su un programma ... che gira su un STM3F100RBT6.
Please wait ...
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[9] Re: STM32 e Keil

Messaggioda Foto UtenteTardoFreak » 23 apr 2013, 0:13

Prima risposta,
Nelle proprità del progetto , alla scheda C/C++ se usi la StdPeripheral devi definire questi simboli:
STM32F10X_MD_VL
USE_STDPERIPH_DRIVER

Poi domani farò altre verifiche e ti dirò. Incomincia a provare questo.
Io uso un progetto di base che ho scritto una volta e lo uso per ogni progetto ma, oramai, è passato abbastanza tempo da farmi dimenticare il perché uscivano gli stessi errori che evidenzi tu. :(
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[10] Re: STM32 e Keil

Messaggioda Foto Utentepierinter » 23 apr 2013, 0:16

Lo stesso vale per me.
Mi sono preparato una base da cui poi parto.

Ma non ricordo come ci sono arrivato e che settaggi erano stati fatti :( Appena ho tempo ci dò un'occhio
Avatar utente
Foto Utentepierinter
620 2 7 10
Expert EY
Expert EY
 
Messaggi: 1395
Iscritto il: 23 mar 2009, 0:05

Prossimo

Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti