STM32F429Disco Datasheet'leri

Başlatan apsis, 12 Ocak 2017, 01:04:30

apsis

Merhaba ARM'da alıştırma turları yapmaya çalışıyorum. Z hocamın anlatımlarından çalışmaktayım. Çalışırken mesela TIM7 interrupt uygulamasında
NVIC->ISER[1] registeriyle karşılaştım. Bu registeri ne referance manualde ne de datasheette bulabildim. Referance manuelde NVIC i arttığımda PM0214 kodlu manuele yönlendirdi ve bu registere burada ulaşabildim. Kullandığım TIMER7 nin pozisyonunun Referance'de tablo 61'de 56 sırada olduğunu buldum ve ISER registerinde örneklerde de olduğu gibi yazdım.
Amacım başta register düzeyinde program yazmak.
Benim asıl sormak istediğim hep bu şekilde 3-4 dökümanla çalışmak zorunda mıyız? Neden tek bir dökümanda bunlar toplanmamış?
Ve aşağıdaki tanımlamalar ne anlama geliyor?
#define STK_CTRL (*((volatile unsigned int*) 0xE000E010))
#define STK_LOAD (*((volatile unsigned int*) 0xE000E014))
#define STK_VAL (*((volatile unsigned int*) 0xE000E018))
"Makineye Beyin" MEKATRONİK

Zoroaster

#1
#define STK_CTRL (*((volatile unsigned int*) 0xE000E010))
#define STK_LOAD (*((volatile unsigned int*) 0xE000E014))
#define STK_VAL (*((volatile unsigned int*) 0xE000E018))

Çipin registerleri hangi adreste yer alıyor bilgisi dosyalardan birisinde mevcut idi. Ancak bazı registerlerin adreslerinin bu dosya da yer almadığını gördük.
Bizde eksik register tanımlarını program yazdığımız dosyaya yukarıdaki gibi ilave ettik.

Mesela demişiz ki;

STK_CTRL işaretsiz 32 bit veriler tutar ve adresi 0xE000E010 dir. Derleyiciye ayrica diyoruz ki "Aman ha derleme yaparken bu adrese erişim yapan satırlarıma dokunma olduğu gibi derle."
Seytan deliginden kacti.

apsis

@Zoroaster  hocam anladım çok teşekkür ederim. Anlaşılan 3-4 dökümanla beraber çalışmak zorunda kalacağım. Bu da işin cilvesi olacak artık
"Makineye Beyin" MEKATRONİK

Zoroaster

#3
Birden fazla dokumanla calisma mecburiyeti sundan kaynaklaniyor.

Cekirdegi ARM firmasi tasarlamis ve dokumante etmis. SysTick ve kismen NVIC gibi birimler ARM firmasinin cipe dahil ettigi ve dokumante ettigi konular.

Cipe ozgu diger konular (bacaklar, cevre birimleri registerleri vs) ise cip ureticisinin  dokumante ettigi konular.

Haliyle farkli dokumanlar gerekiyor.

Bir de her bir dokuman zaten cok fazla sayfadan olusuyor. Hepsi bir arada olursa tamam derli toplu olur ama binlerce belki de onbinlerce sayfa insanin canini sikar.
Seytan deliginden kacti.

magnetron

dokumanlar registerleri anlatıyor

ama register bazında olayı anlamak oldukça zor

standart peripheral library veya şimdi HAL library var galiba

ordaki örnek programları incelemekle daha hızlı öğrenilir

apsis

#5
@Zoroaster meseleyi daha iyi anladım hocam teşekkür ederim. PM0214 sayfa 245 te mevcutlar.
@magnetron evet biraz zor ama birazda bende takıntı bu mesele. Yapıyı register seviyesinde kavrayamadığımda kendimi öğrenememiş hissediyorum ki bu bence ilerde yazılımda çıkabilecek sorunların hangi registerin kaçıncı bitinden bile çıkabileceğini saptamamı sağlıyor. Yani biraz da çipe hakimiyetimi arttırıyor diye düşünüyorum. Zoroaster hocamın yaptığı uygulamaları takip ederek birazda üstüne bir şeyler katmaya çalışarak mirariyi kavramaya çalışıyorum. Daha sonra söylediğiniz kütüphanelere geçiş yapmayı düşünüyorum.
"Makineye Beyin" MEKATRONİK

crazy

Kısa yol olarak " stm32f4xx.h" dosyasında interrupt vector isimleri pozisyon numaraları var.