STM32f103 Debug Sorunu

Başlatan ugurer, 07 Şubat 2018, 14:05:25

ugurer

Merhaba arkadaşlar, STM'i öğrenme aşamasındayım. O yüzden sitede ki kodları inceleyerek birazda hazır proje kullanarak denemeler yapmaya niyetlendim.

Bunun içinde önce debug yapıyım dedim ama sürekli sonsuz döngüye giriyor debug işlemim.

Debug başlattığımda system_32f10x.c 'de bulunan "static void SetSysClockTo72(void)" fonksiyonunda bir do while döngüsünde takılı kalıyor.

Kullandığım kodlar
#include "stm32f10x.h"
#include <stdio.h>

void Ayarlar()
{
    (*((int*)0xE000ED88))|=0x0F00000;  // Floating Point donanimini aktiflestir. !!! Basimizin derdi !!!
//    RCC->AHB1ENR |= 0x00000008;        // GPIOD donaniminin clock sinyalini uygulayalim
//    GPIOD->MODER = 0x55000000;         // GPIOD nin 15, 14, 13, 12 pinleri cikis tanimlandi (Ledler bu pinlerde)
//    GPIOD->OSPEEDR= 0xFFFFFFFF;        // GPIOD nin tum cikislari en yuksek hizda kullanacagiz 
	
	RCC->APB1ENR |=  0x00000008;
	GPIOD->CRL 	  =	 0x33330000;
} 

int main()
{
   while(1)
   {
     GPIOD->ODR= 0x0000F000;     // Ledler yansin
     GPIOD->ODR= 0x00000000;     // Ledler sonsun
   } 
	
}


Proje dosyamın ekran görüntüsü


Debug yaparken sonsuz döngüye girdiği yer



Ve debug ayarlarım


Emre_Tuncay_

Programınızda HSESTATUS'u while içinde kontrol eden bir bölüm var.Burada anladığım kadarıyla external osilatörün düzgün çalışıp çalışmadığını kontol ediyor düzgün çalıştıysa devam ediyor çalışmadıysa oradan çıkmıyor.Tahminimce osilatörünüz düzgün çalışmıyor o yüzden o döngüden çıkmıyor.

Zoroaster

Islemcin 103 fakat kodlar 407 kodlari gibi duruyor. Bu iki islemcinin registerleri vs tamamen ayri.
Seytan deliginden kacti.

ugurer

Evet o @Zoroaster o yüzden kodları yorum satırına aldım. Sizin paylaştığınız örnekleri 103'e göre devşirdim. Fakat dediğim gibi main'e girmeden önce tıkanıyor debug'da.

Haklısınız @Emre_Tuncay_ tam orada tıkanıyor 500'e kadar sayıyor sonra sıfırlanıp tekrar 500'e kadar sayıyor. Cümleyi yanlış yazdım aslında sonsuz döngü değil asıl problem bu.

Fakat bu dosyayı ben eklemedim. Device Core ile birlikte bu kodlar geldi o yüzden müdahale edemiyorum.

Bertan

@ugurer Neden debug ayarlarında 'Use Simulator' işaretli?

Aşağıdaki gibi yapmayı dener misiniz?


ugurer

Çünkü ST link ile değil Keil ile debug yapmak istiyorum. Elimde kendi yaptığımız bir kart var Keil ile simulasyon yapıp karta aktarmak istiyorum.

crazy

#6
Konu açılmışken STM32F103 serisi ile debug yaparken  Debug penceresinde ki "Dialog DLL" DARMSTM.DLL "parameter"-pSTM32F103C8(kullandığımız işlemci adı) şeklinde değiştirdiğimizde  resimdeki gibi registerler  daha ayrıntılı oluyor.ST32F4 serisi için aynı yöntem işe yaramıyor.F4 serisi için nasıl ayarlandığını bilen var mı  acaba.




ugurer

@crazy 'e çok teşekkür ederim yardımları sayesinde sorunu hallettik. Şu anda tam istediğim gibi simülasyon yapabiliyorum. Kullanacak arkadaşlar için de ekran görüntüsü
paylaşıyorum. Debug ayarları şekilde ki gibi olduğunda sorunsuz çalışıyor.



crazy

#8
Keil simulator kartsız debug logic analyzer kullanımı;
St-link ile logic analyzerı nasıl  kullanabiliriz.
https://www.youtube.com/watch?time_continue=2&v=C9oYx7f6gao

zahi

video için teşekürler crazy