Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

Ynt: SystemInit Stm32f4

Başlatan muhittin_kaplan, 02 Ağustos 2013, 01:37:07

muhittin_kaplan

Fatih hocam teşekkür  ederim.
Problem şu
stm32f4xx.h dosyasında HSE tanımlaması yapılmış, haliyle biz bunu değiştirmiyoruz. orada 25mhz olarak tanımlı 8mhz olarak tanımlayınca olay düzeldi.

fatih6761

Alıntı yapılan: muhittin_kaplan - 03 Ağustos 2013, 01:32:44
Fatih hocam teşekkür  ederim.
Problem şu
stm32f4xx.h dosyasında HSE tanımlaması yapılmış, haliyle biz bunu değiştirmiyoruz. orada 25mhz olarak tanımlı 8mhz olarak tanımlayınca olay düzeldi.
Hocam böyle bir sıkıntı oluşmaması için doğrudan excel tarafından oluşturulan dosyayı kullanabilirdiniz. Kolay gelsin hocam...

muhittin_kaplan

karıştırmayalım, ben zaten excel tarafından oluşturulan dosyayı kullanıyorum. onun oluşturduğu dosya
system_stm32f4xx.c

Ama değişiklik yapmaz zorunda olduğum dosya
stm32f4xx.h

ve içerisindeki
#if !defined  (HSE_VALUE) 
  #define HSE_VALUE    ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
#endif /* HSE_VALUE */


satırı burası daha önceden 25000000 di.

fatih6761

Hocam gördüğünüz gibi stm32f4xx.h dosyası if !defined demiş. Yani HSE_VALUE önceden tanımlanmamışsa 25000000 olacak. stm32f4xx.h dosyasında değiştirdiğiniz satırın hemen üstünde bir açıklama var. Orada dosyayı değiştirmemek için HSE_VALUE değerini derleyici komut satırında tanımlayınız diyor. Yani HSE değerinin tanımlanması gereken yer stm32f4xx_conf.h dosyası veya proje ayarları/önceden belirlenmiş semboller olmalı. Tabi sizin işleminiz de aynı sonucu veriyor. Ancak o değerin asıl yeri derleyici sembolleri. İyi çalışmalar dilerim hocam...

muhittin_kaplan

#19
Clock Ayarlıyorum, 50 yerden değişiklik yaptırıyor bana,

mesaj birleştirme:: 03 Ağustos 2013, 05:37:37

Şurada YAzmış, ya Yarım Okuyoruz Yada Anlamıyorz :S

clock config dosyasından.

Alıntı YapThe default value of HSE crystal is set to 25MHz, refer to "HSE_VALUE" define
  *    in "stm32f4xx.h" file. When HSE is used as system clock source, directly or
  *    through PLL, and you are using different crystal you have to adapt the HSE
  *    value to your own configuration.

fatih6761

Alıntı yapılan: muhittin_kaplan - 03 Ağustos 2013, 05:35:49
Clock Ayarlıyorum, 50 yerden değişiklik yaptırıyor bana,

mesaj birleştirme:: 03 Ağustos 2013, 05:37:37

Şurada YAzmış, ya Yarım Okuyoruz Yada Anlamıyorz :S

clock config dosyasından.
Hocam orada diyor ki;
Ön tanımlı HSE kristali stm32f4xx.f dosyasından da görebileceğiniz gibi 25 MHz dir. Tani kristali buradan ayarların demiyor. Ayarlamazsanız 25MHz seçilir diyor. Dediğim gibi en uygun yeri proje ayarlarından. Hem orada STDPeriph kullanma tanımlarını  assert tanımlarını vs. de yapıyorsunuz.

muhittin_kaplan

Fatih Hocam Proje Ayarları derken Nereyi Kastediyorsunuz ?

fatih6761

ÜStteki ikonlarda Configuration olacak hocam. Oradaki sekmelerin birinde sembollerin ayarları var.

muhittin_kaplan

dişli yada tekerleğe benzeyen, o pencerede clock ayarı yok ki ?

fatih6761

Alıntı yapılan: muhittin_kaplan - 03 Ağustos 2013, 06:13:05
dişli yada tekerleğe benzeyen, o pencerede clock ayarı yok ki ?
Clock ayarı değil hocam, derleyici sembolerine HSE_VALUE sembolünü 8000000 değeriyle ekleyeceksiniz. Daha sonra resim ekleyebilirim.

muhittin_kaplan

bahsettiğin yer burası değil mi ?

fatih6761

Evet hocam. Add dedikten sonra HSE_VALUE=8000000 yazın tamam deyin.

muhittin_kaplan

#27
denedim oluyor. ama yinede mantıklı değil. adam bir HSE clock adında bir pencere felan koyar.

mesaj birleştirme:: 03 Ağustos 2013, 06:44:51

şimdi baktım onuda herhangi bir kütüphaneye değil kendi proje dosyasına yazıyor.

mesaj birleştirme:: 03 Ağustos 2013, 06:48:06

Hocam Yeri Değil Ama RAM den debug yapabiliyormusun ?

fatih6761

Hatırladınız değil mi hocam :) Evet, siz sorduktan sonra onu denedim, flashtaki kod aynı kaldı, kodlar ramden çalıştı.
Biraz assembler çıktısı inceleyerek mantığını da çözdüm. Bilgiğiniz gibi C programı flashta iken ilk kodlar okunuyor ve .data, .bss gibi segmentler ram'e yükleniyor. Ve kodlar çalıştırılıyor. Debug In Ram olayında bu ram'e yükleme işi hata ayıklayıcı (gdb) tarafından yapılıyor. Kodlar program hafızasına yazılmadan RAM'e yazılıyor ve program direkt ram'e dallandırılıyor.

muhittin_kaplan

#29
fatih hocam, coide de proje ayarlarında debug in ram dediğimde bir türlü ram den debug yapamıyorum, ben ondan bahsetmiştim.
siz debug yapabiliyormusunuz ram dan