STM32F407 Cortex M4 şamataları

Başlatan bunalmis, 16 Ekim 2011, 17:14:50

emrah

arkadaşlar program yazmaya bugün fırsatım oldu, sizlerden geri kalmıs olabilirm. 

hocamızn vermiş oldugu led yakma programını denemek istedim fakat 0 hata 1 uyarı veriyor

şu program;



#include "STM32F4xx.h"

void SystemInit()
{
    RCC->AHB1ENR |= 0x00000008;    // GPIOD donanımının clock sinyalini uygulayalım
    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
}

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



bildirimde şu şekilde ;


Build target 'Target 1'
compiling led.c...
led.c(17): warning:  #1-D: last line of file ends without a newline
linking...
Program Size: Code=396 RO-data=408 RW-data=0 ZI-data=1632 
"led.axf" - 0 Error(s), 1 Warning(s).


nerede yanlış yapıyorum??

emrah

tamam hocam denedim oldu :)  ilk basta uyarı verdi daha sonra 0 0 oldu analamdım neden oldu.  hocam bir sorum daha olcaktı. programı çalıstırdım keilden rest atıp çalıstırıyorum fakat kart üzerindeki reset butonuna bastıgımda ledler kısık yanık şekilde kalıyor nedeni ne olabilir?

fryrmnd

kartla debug işlemi esnasında interrupt enable için kullanılan bir registerın içeriğini nasıl görebilirim. o satırda bir break point koysam. f5 ile run edip orda beklediğinde f11 le o satırı işletince registerın içeriğini nerden izleyebilirim. mesala register EXTI_IMR.

emrah

sorumun cevabını buldum sanırım.

program normalde led yak ve söndür işlemi yapıyor,

debug üzerinden tek tek komut işlettigimiz için yakma ve söndürmeyi görüyoruz, birde programda while komutunda breakpoin konuldugu için  programdan reset yaptıgımda burada bekeleme yapıyor fakat kart üzerinden reset yaptıgım zaman dogrudan döngüye girip  ledleri yakıp söndüreme işlemi yapıyor ve bu yüzdende ledlerrin hepsi kısık yanık kalıyor.

fryrmnd

Alıntı Yapkartla debug işlemi esnasında interrupt enable için kullanılan bir registerın içeriğini nasıl görebilirim. o satırda bir break point koysam. f5 ile run edip orda beklediğinde f11 le o satırı işletince registerın içeriğini nerden izleyebilirim. mesala register EXTI_IMR.

peripherals kısmından mı izleniyor acaba.

okylmz

Alıntı yapılan: Tlepsh - 25 Aralık 2011, 20:56:08
Değerli arkadaşlar,

STM32F4 Discovery kitten bir arkadaşım aracılığıyla temin etmiştim. Kit elime cuma gün geçti.  Bülent hocamın bütün derslerini takip etmiştim ve örnek programların çoğunu Keil'de yazıp çalıştırdım.

Bu arada dün ikinci usb kabloyu şaşırtıcı şekilde Muğla'da temin edip (şaşırtıcı çünkü burada tek elektronik malzeme satan yer var ve orada lcd'yi falan bırakın 7 segment display bile bulamayabiliyoruz ) cursoru hareket ettiren demoyu deneyebildim. Eğer becerebilirsem videosunu da çekip ekleyeceğim merak edenler için.

Ben heyecanla Bülent hocanın örnekleri denerken demo yazılımı silmiştim tabi. Tekrar gerekince epey aradım ve foruma da baktım ama bulamadım yada ben göremedim. Gerekenler için nereden bulabileceğinizi de ben yazayım:

Bu adresten: http://www.st.com/internet/evalboard/product/252419.jsp, Design support kısmından en alttaki firmware dosyasını indirirseniz bu dosya içerisinde Project/Demonstration/MDK-ARM klasöründe Keil projesi olarak bulabiliyorsunuz. Derleyip debug yapınca ilk elimize gelen kitteki demo yazılımı yüklenmiş oluyor.

Selamlar...

cevabın için çok teşekür ederim Tlepsh.
sağolasın.
selamlar...

CoşkuN

ST firması neden şu register'lara kolay erişilebilecek şekilde header dosyaları oluşturmamış ki sanki... Bahsettiğim şu linkteki gibi header'lar (MPC565 mikrodenetleyicisi için)

http://etidweb.tamu.edu/ftp/ENTC369/Code/MPC555/Include%20Files/m_mios.h

memo333

Alıntı yapılan: CoşkuN - 27 Aralık 2011, 13:23:36
ST firması neden şu register'lara kolay erişilebilecek şekilde header dosyaları oluşturmamış ki sanki... Bahsettiğim şu linkteki gibi header'lar (MPC565 mikrodenetleyicisi için)

http://etidweb.tamu.edu/ftp/ENTC369/Code/MPC555/Include%20Files/m_mios.h

hocam onlar var..
Gömülü Linux Notları --> http://linuxedu.xyz/

CoşkuN


memo333

STnin kendi yayınladığı STLIB var.

link:
http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32f4_dsp_stdperiph_lib.zip

Bunu indirip örneklere bakabilirsiniz.

Zamanım olursa bunlarla ilgili dersnotu tarzı birşeyler yayınlamak istiyorum..
Gömülü Linux Notları --> http://linuxedu.xyz/

CoşkuN

Alıntı yapılan: memo333 - 27 Aralık 2011, 15:03:46
STnin kendi yayınladığı STLIB var.

link:
http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32f4_dsp_stdperiph_lib.zip

Bunu indirip örneklere bakabilirsiniz.

Zamanım olursa bunlarla ilgili dersnotu tarzı birşeyler yayınlamak istiyorum..

Bunu biliyorum. Bahsettiğim şey örnekte verdiğim dosyadaki gibi resigter'ların bitlerine erişim için struct ve union'larla oluşturulmuş header dosyaları... Böylelikle yine register'larla yapılan işlemler daha kolay bir şekilde (kütüphane fonksiyonları olmadan) gerçekleştirilebilir.

memo333

Alıntı yapılan: CoşkuN - 27 Aralık 2011, 15:19:09
Bunu biliyorum. Bahsettiğim şey örnekte verdiğim dosyadaki gibi resigter'ların bitlerine erişim için struct ve union'larla oluşturulmuş header dosyaları... Böylelikle yine register'larla yapılan işlemler daha kolay bir şekilde (kütüphane fonksiyonları olmadan) gerçekleştirilebilir.

"stm32f4xx.h" dosyasında birşeyler var ama tam olarak istediğiniz gibi bişey mi denemek lazım. belki sadece bu dosya ile dediğiniz gibi registerlara ulaşılabilir.
Gömülü Linux Notları --> http://linuxedu.xyz/

CoşkuN

İşlemcinin saat frekansı ayarlama işlemleri oldukça karmaşık gibi görünebiliyor başlangıçta. Bu ayarları kolaylıkla yapabilmek için bir araç da varmış, uygulama dökümanıyla birlikte

http://www.st.com/internet/mcu/product/252140.jsp
sayfasında Configuration Utilities bölümünde
"Clock configuration tool for STM32F40x/41x microcontrollers"

promate

Alıntı yapılan: CoşkuN - 28 Aralık 2011, 10:35:55
İşlemcinin saat frekansı ayarlama işlemleri oldukça karmaşık gibi görünebiliyor başlangıçta. Bu ayarları kolaylıkla yapabilmek için bir araç da varmış, uygulama dökümanıyla birlikte

http://www.st.com/internet/mcu/product/252140.jsp
sayfasında Configuration Utilities bölümünde
"Clock configuration tool for STM32F40x/41x microcontrollers"

http://www.st.com/internet/com/SOFTWARE_RESOURCES/TOOL/DEVICE_PROGRAMMER/stm32_programming_solutions.pdf

zamzam23

Alıntı yapılan: CoşkuN - 28 Aralık 2011, 10:35:55
İşlemcinin saat frekansı ayarlama işlemleri oldukça karmaşık gibi görünebiliyor başlangıçta. Bu ayarları kolaylıkla yapabilmek için bir araç da varmış, uygulama dökümanıyla birlikte

http://www.st.com/internet/mcu/product/252140.jsp
sayfasında Configuration Utilities bölümünde
"Clock configuration tool for STM32F40x/41x microcontrollers"
yani bu:
http://www.st.com/internet/com/SOFTWARE_RESOURCES/TOOL/CONFIGURATION_UTILITY/stm32f4_clockconfig.zip