Arkadaşlar Merhaba,
St_lib i öğrenmeye çalışıyorum fakat sürekli aşağıdaki hatayı alıyorum acaba neden kaynaklanıyor olabilir?
deneme.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f4xx.o).
Halbuki stm libraryleri ekledim manage kısmından St_lib kullanırken SystemInit kullanmamıza gerek var mı sadece basit led-yak uygulaması yapiyorum.
M.Fatih İnanç Hocanın websitesindeki uygulamalar: http://www.fatihinanc.com/diger/stm32f4-discovery-gelistirme-kiti-incelemesi/. (http://www.fatihinanc.com/diger/stm32f4-discovery-gelistirme-kiti-incelemesi/.)
Aşağıda kodu paylaştım SystemIniti açıyorum ledler toggle ediyor ama kapatınca çalışmıyor.#include "stm32f4_discovery.h"
#include "stm32f4xx_gpio.h"
GPIO_InitTypeDef GPIO_InitStructure;
void GPIO_Setup(void);
/*void SystemInit()
{
unsigned int i;
(*((int*)0xE000ED88))|=0x0F00000;
for (i=0;i<0x00100000;i++); // OSC oturtma ve kurtarma rutini
RCC->CFGR |= 0x00009400; // AHB ve APB hizlarini max degerlere set edelim
RCC->CR |= 0x00010000; // HSE Xtal osc calismaya baslasin
while (!(RCC->CR & 0x00020000));// Xtal osc stabil hale gelsin
RCC->PLLCFGR = 0x07405408; // PLL katsayilarini M=8, N=336, P=2 ve Q=7 yapalim
RCC->CR |= 0x01000000; // PLL calismaya baslasin (Rehber Sayfa 95)
while(!(RCC->CR & 0x02000000)); // Pll hazir oluncaya kadar bekle
FLASH->ACR = 0x00000605; // Flash ROM icin 5 Wait state secelim ve ART yi aktif edelim (Rehber Sayfa 55)
RCC->CFGR |= 0x00000002; // Sistem Clk u PLL uzerinden besleyelim
while ((RCC->CFGR & 0x0000000F) != 0x0000000A); // Besleninceye kadar bekle
RCC->AHB1ENR |= 0x0000000F; // GPIO A,B,C,D clock'u aktif edelim
GPIOD->MODER = 0x55000000; // GPIOD nin 15, 14, 13, 12 pinleri cikis tanimlandi (LEDler icin)
GPIOD->OSPEEDR= 0xFFFFFFFF; // GPIOD nin tum cikislari en yuksek hizda kullanacagiz
}
*/
void Delay()
{
unsigned int i;
for(i=0;i<0x800000;i++);
}
int main()
{
while(1)
{
GPIO_ToggleBits(GPIOD, GPIO_Pin_15 | GPIO_Pin_14 |GPIO_Pin_13 | GPIO_Pin_12);
Delay();
}
}
void GPIO_Setup(void)
{
/* GPIOD Clocku aktif hale getiriliyor... */
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
/* PD12,PD13,PD14 ve PD15 çikis olarak ayarlaniyor. GPIO Bus hizi 100 MHz... */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13| GPIO_Pin_14| GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOD, &GPIO_InitStructure);
}
"SystemInit()" fonksiyonu "system_stm32fxxxx.c" dosyasında. Bu dosya projeye dahil edilmiş mi?
Derleyici ayarlarında "USE_STDPERIPH_DRIVER" tanımı var mı?
Evet hocam yazınızı ekledim sonrasında baktım yine olmadı halbuki aynı dosyalar peripheral example larda var ama bendeki çalışmadı sonra bahsettiğiniz dosyaya girdim değiştirdim GPIO_MODER falan ama olmadı acaba elinizde temiz st_lib eklenmiş system_init gerektirmeyen bir dosya var mı hocam?
Yukarıda bahsettiğim tanımı yaptın, "system_stm32fxxxx.c" dosyasını projeye dahil ettin, "stm32f4xx.h" dosyasını include ettin ve halen "SystemInit()" fonksiyonunu bulamıyorum hatası mı alıyorsun?
Aynen ustacım dediğin gibi options-c/c++ kısmına yazmıştım ama systemınit hatası alıyorum hala
mesaj birleştirme:: 30 Mayıs 2013, 19:58:14
stm324xx.h dosyası zaten include edilmişti usta ona başka bir işlem uyguluyor muyuz sen bi video tutorial falan ceksen bizde feyz alsak nasıl olur:)
(http://s1305.hizliresim.com/19/z/nn9xq.png) (http://bit.ly/c25MCx)
Proje ağacının resimdeki gibi görünmesi gerek.
"system_stm32f4xx.c" muhakkak projeye ekli olmalı.
ayrıca kütüphanenin yolunu da derleyiciye bildirmiş olmalısınız.
http://www.dosya.tc/server10/iFysoT/Stm32F4Conf.rar.html (http://www.dosya.tc/server10/iFysoT/Stm32F4Conf.rar.html)
Burada "system_stm32f4xx.c", "stm32f4xx_conf.h" , "main.c" ve proje dosyası var.
Klein hocam dediğin gibi ekledim c file ları ardından headerları gösterdim hiç hata vermedi ama kodu yüklüyorum bir şey göremedim veri göndermiyor ledlerde yanmıyor acaba neden kaynaklanıyor olabilir?
Verdiğim kodu derlediysen çalışması gerek.
Programı karta ne ile yüklüyorsun?
debugger olarak ST-Link seçili olduğundan emin ol. Simülatörde kalmış olabilir.
Klein hocam verdiğiniz dosyadaki kodlar calışıyor problemim başka bir yerde
http://safaunalmis.blogspot.com/2013/02/stm32f4-discovery-icin-keil-ayarlari.html (http://safaunalmis.blogspot.com/2013/02/stm32f4-discovery-icin-keil-ayarlari.html) buradaki arkadaş yapılacakları guzel anlatmıs tek tek yaptım template bir proje hazırladım sizin usart kodunu attım ama çalışmıyor.Ustune bir de Keil 4.60 kurdum onda da aynı problemim var.St_lib kodlarını ancak library in icindeki ornek projelerde deneyebiliyorum.Ama herseyi denedim hala anlamadım neden kaynaklandığını.