STM32F407 Cortex M4 şamataları

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

z

https://www.picproje.org/index.php/topic,35721.0.html başlığında STM32F407 çipi ve bu çiple yapılmış deneme kartı konusunun ders anlatımları başladı ve zaman içinde dersler ilerleyecek.

Bu başlıkta ise bu konulardaki sorularınız ve cevapları tartışılacak.



Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

#1
Buradan bir kez daha hatirlatayim.  Hard deyince bu dokumani .  (DocID 022152 Rev1), Rehber deyince de bu dokumani   (Doc ID 018909 Rev1)  anlayacagiz.
Hard'in 16.sayfasini, Rehberin de 85. sayfasini print edin. Onumuzdeki gunlerde bu iki sayfa uzerinde biraz konusacagiz.
Zamaniniz oldukca bu iki sayfaya bol bol bakin.

Hard 16 da, AHB, AHB1, AHB2, APB1, APB2 olarak adlandirilmis Buslar (iletim yollari) nerelere gidiyor, ARM islemci nerede, Timer nerede vs vs goz atin iste.
Rehber 85 de 48Mhz Usb clock, 168Mhz CPU clock, AHB clock, APB clock vs yazan yerlere biraz goz atin.

AHB ve APB dokumanlarda sikca karsilasilacak terimler.

Bir de Hard 39. sayfa elinizin altinda kagit baski olarak dursun.

(Bu dokumanlari bastan sona print etmenizi onermem.)

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Şimdi de bugüne kadar işlemcilerle uğraşmış fakat hiç ARM çiple uğraşmamış arkadaşların https://www.picproje.org/index.php/topic,35721.msg255347.html#msg255347 adresindeki ARM işlemcimiz resetlendiğinde neler olur? başlığını okumasını ve burada anlatılan olayları anlayıp anlamadıklarını söylemelerini ve yazım şeklimi eleştirmelerini bekliyorum.

İşin başındayken ayağımı denk almam açısından bana muhakkak bir kaç kişi fikrini yazsın.

https://www.picproje.org/index.php/topic,35813.0.html adresindeki açıklamalara da paralel olarak muhakkak bakın.


Bana e^st de diyebilirsiniz.   www.cncdesigner.com

eistain_54

#3
Hocam ilk eşeltrişi ameliyattan önce benden olsun..gecenin bu saatinde bunlarla meşgul olmanız mutluluk verici.Ama sanki daha basitten alınabilir diye düşünüyorum.Tercih sizin....Birde "boot" yükleme anlamına mı geliyor?
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

mozkan87

Hocam benim için sorun yok, ancak okulda intel 8080 mikroişlemci dersi aldım daha geçen yıl o nedenle Stack pointer ve boot gibi bazı terimlere oradan aşinalığım var. Derste 0 dan sistem dizaynı yapmayı gördük ama sadece teoride tabi.
Ayrıca terimler bölümüne Stack Pointer, Program Counter terimlerinide eklerseniz ilk defa duyan arkadaşlar için iyi olacaktır. Teşekkürler.

z

#5
Alıntı yapılan: eistain_54 - 18 Ekim 2011, 02:18:32
Hocam ilk eleştriyi ameliyattan önce benden olsun..gecenin bu saatinde bunlarla meşgul olmanız mutluluk verici.Ama sanki daha basitten alınabilir diye düşünüyorum.Tercih sizin....Birde "boot" yükleme anlamına mı geliyor?

Daha da basitleştirip anlatırım ama o zaman bu kursu sonuçlandırmamız çok uzun zaman alır.

Mesela neresini anlamadın?

Boot terimi ile ilgili olarak https://www.picproje.org/index.php/topic,35813.0.html deki açıklama yeterli olmadımı?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Alıntı yapılan: mozkan87 - 18 Ekim 2011, 02:39:58
Hocam benim için sorun yok, ancak okulda intel 8080 mikroişlemci dersi aldım daha geçen yıl o nedenle Stack pointer ve boot gibi bazı terimlere oradan aşinalığım var. Derste 0 dan sistem dizaynı yapmayı gördük ama sadece teoride tabi.
Ayrıca terimler bölümüne Stack Pointer, Program Counter terimlerinide eklerseniz ilk defa duyan arkadaşlar için iyi olacaktır. Teşekkürler.

Stack Pointer ve Program Counter terimlerini o sayfaya eklerim eklemesine de;

Bu terimleri daha önce mikroişlemci ile proje yapmış herkesin zaten biliyor olması lazım.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

eistain_54

Stack Pointer;yığın işaretçisi gibi bişeydi galiba.Program Counter ise program sayıcı diye hatırlıyorum.Programın değerini bir arttıran şey değilmiydi.
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

z

#8
Benzetimler yaparak şamata yapacağım.

PC yani Program Counter

Bir ışınlama odasına girip klavyeden PC=Ankara yazarsanız kendinizi Ankara'da bulursunuz.
PC=Amerika yazarsanız kendinizi Amerika'da bulursunuz.

İşlemcide aynen böyle bir register var. Bu registere 0x80001234 yüklenirse, işlemci kendini bir anda Flashın 0x80001234 adresindeki kodu işletirken bulur.

Goto Label1 yada jmp Label1 gibi komutların yaptığı, Label1 adresinin sayısal değerini PC registerine yazmaktan ibarettir.

Stack Pointer

Bir labirente girdiniz ve kayboldunuz. Labirent duvarlarında sokak numarası gibi numaralar var.

Bir türlü labirentten çıkamıyorsunuz ve en sonunda stratejı geliştirmek zorunda kaldınız ve bir kagıt parçasına geçtiğiniz sokakların numalarını alt alta yazmaya başladınız.
Kağıda yazdığınız numaralar,  aynı yerlerden tekrar tekrar geçmenizi engelleyecek ip uçları olacaktır.

Burada kullandığımız kağıt parçacığına stack memory diyebiliriz.

Kağıtta en son yazdığınız rakamın bulunduğu satır numarası sizin stack pointerinizdir. Bunu bir eksiltirseniz yani kağıttaki bir üst satıra çıkarsanız bir geride hangi sokak var bilgisine erişirsiniz.

Güzel bir örnek oldumu bilmiyorum ama fikir vermiş ve konuyu hatırlamışsınızdır.

Mikroişlemci de aynen yukarıdaki sokak örneğinde olduğu gibi bir fonksiyondan bir diğer fonksiyona giderken nasıl geri döneceğini aynı şekilde belirler.
Bunun için bilmediği bir sokağa girmeden önce bulunduğu sokak numarasını (PC yani program Counter değerini) Stack memorye yazar.
Daha sonra Stack memoryden nereye geri gideceğini kolayca öğrenir. Bunun için Stack Memoryde Stack Pointer de saklı adresdeki bilgiyi okuması yeterlidir.

Arkadaşlar bu temel konuları bilmeniz çok önemli. Bilmediğiniz şeyler olursa burada şamata yapın ve öğrenin yoksa ARMın üstesinden gelemem.

Stack pointerin ilk değer alması önemli. Bu Arm işlemcilerde reset aşamasında otomatiğe bağlanmış ve donanımsal olarak oluyor. Fakat daha sonra istersek yazılımsal olarak değiştirebiliyoruz.

Neden böyle: Bu ARM mimarisinin bir özelliği. Şu anda tam hatırlamıyorum ama eğer reset ardından Stack pointer donanımsal olarak sıfır değeri alıyorsa yani (Flash kodlarınızın ilk 4 byte'ı sıfırsa) CPU bir şeyi anlıyordu ama neyi? Bootload işlemini otomatik bir başka kaynağa yönlendiriyordu galiba.



Bana e^st de diyebilirsiniz.   www.cncdesigner.com

yamak

Hocam deminden beri rehberde memory map bölümünü okuyorum ama anlamadığım kısımlar var.Rehberde 49-50-51-52 . sayfalarda yazanları kısaca anlatabilme şansınız var mı?Bir de daha önceden başıma şöyle bi hadise gelmişti.Stellariste de lpc1768'de de program fazla yer kapladığı için start-up dosyasından stack ve heap boyutlarını artırmıştım.Şimdi burada stack heap boyutunu artırdığımızda ram'den mi yer tahsis etmiş oluyoruz yoksa flash memoryden mi?Bir de 49. sayfada memory organization başlığı altında  4gb lık adress space diye adlandırdığı kısım peripharellara ait registerların saklandığı yer mi oluyo?

z

#10
Sırayla gitmemiz lazım. Bahsettiğiniz konuya cok yakında değineceğiım. Kısaca bazı sorularınıza değineyim.

ARM 32 bitlik bir işlemci. Adres Bus'ı da 32 Bit.

Bu da 2^32 yani 4GB demek.

Flash + Ram + Cevrebirimleri tüm adresleri en fazla 4GB içinde olabilir.

Stack ve Heap, Ram dışına taşamaz.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

OG

Kısa bir soru, konuyu baştan sona incelemeye üşenen tembelin ve ARM cahilinin sorusu,

Elimde şu kart var,
http://www.futurlec.com/STM32_Development_Board.shtml

Sizin kartınız ile yapılacak çalışmalara bu kart ile katılınabilinir mi?
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

z

Kursun Keil ve C kısmından yararlanabilirsiniz.

Bizim kartla ilgili olarak felsefeyi kaparsanız kendi kartınızın çipinin dokumanlarını da takip ederseniz olabilir. Fakat kart sahibi olursanız işiniz daha kolay olur.


Bana e^st de diyebilirsiniz.   www.cncdesigner.com

teknikelektronikci

hocam baslik ne oldu silindimi dekontu gönderecem maili bilmiyorum basligida bulamiyorum dekontu gönderecegim arkadasin mailini yazabilirmisiniz rica etsem tesekkürler
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

z

Bilmiyorum. Ben de bugun yatiracaktim eger silindi ise bana da lazim olacak.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com