ARM Cortex-M3

Başlatan ayhan_eee, 04 Şubat 2013, 22:35:38

ayhan_eee

Öncelikle Merhaba,
Buralardan çok yararlandık zamanında.Belki işine yarar diye kendimce yaptığım çalışmaları eklemek istedim.Daha sonra da devamlarını ekleyeceğim.Umarım işine yarayan olur :)


1-ARM MİMARİSİ VE CORTEX-M SERİSİ

2-STM32F107 VC Genel Özellikleri ve GPIO Kaydedicileri

muhittin_kaplan

#1
page not founda diyor.
teşekkür ederim.

ayhan_eee

Alıntı yapılan: muhittin_kaplan - 04 Şubat 2013, 22:36:51
page not founda diyor.
Bende giriyor düzelttim ama sorunlu mu hala?

ayhan_eee

Bu arada BSRR içinde Reset biti olduğu halde neden ayrıca 16 bitlik br BRR ihtiyaç duyulmuş bilgisi olan varmı?

Erhan YILMAZ

Alıntı yapılan: ayhan_eee - 05 Şubat 2013, 21:48:29
Bu arada BSRR içinde Reset biti olduğu halde neden ayrıca 16 bitlik br BRR ihtiyaç duyulmuş bilgisi olan varmı?
Yazılım tarafında kütüphane yazmayı kolaylaştırır. Örneğin Bit_Set(char Bit_num, port_num) ve Bit_Reset(char Bit_num, port_num) diye iki fonksiyon yazarsanız birinde BRR birinde BSRR'yi kullanırsanız kodunuz daha hızlı çalışır. İlk aklıma gelen bu oldu.

ayhan_eee

Ama Aynı işlemi BSRR ile de yapabiliriz.Değişen ne olur ki.Ayrıca öte yandan BRR varsa BSRR deki reset ne işe yarar.Daha kesin bir işlevi olmalı bence

Erhan YILMAZ

Alıntı yapılan: ayhan_eee - 06 Şubat 2013, 00:42:28
Ama Aynı işlemi BSRR ile de yapabiliriz.Değişen ne olur ki.Ayrıca öte yandan BRR varsa BSRR deki reset ne işe yarar.Daha kesin bir işlevi olmalı bence

BSRR kullanarak örneğin Bit_Reset(char bit_num) fonksiyonunu gerçeklemek için en basitinden 16 kez sola kaydırma yapmak gerekli.

GPIOX_BSRR = (1 << (bit_num+16)); gibi bir işlem örneğin. Bu işlem daha çok zaman alır
GIPOX_BRR =  (1 << bit_num); bu işlemden.  Başka işlevide olabilir tabi.

Bide şöyle bir açıklama var BSRR ile ilgili
Using the GPIOx_BSRR register to change the values of individual bits in GPIOx_ODR is a 
"one-shot" effect that does not lock the GPIOx_ODR bits. The GPIOx_ODR bits can always 
be accessed directly. The GPIOx_BSRR register provides a way of performing atomic 
bitwise handling.


camby

BRR   = 0x 0000 0001      , biti 0 yapar
BSRR = 0x 0000 0001      , biti 1 yapar

kullanım kolaylığı ve performans için gerekli.

Fakat BSRR de 32 bit ile hepsiniz üzerinde barındırdığı için tek başına yeterli.

Erhan hocam da da detaylıca anlatmış zaten.

fractal

selamlar bende stellaris cortex m3 kullanıyorum.ccs ile xds100 v2 var.şu anlık sorunum online değişken izleme yapamıyorum.breakpoint  koyarak değişkeni takip edebiliyorum ama online modda izleyemiyorum.dolasıyla registerlarada pinlerede  bakamıyorum.xds100 v2 den mi kaynaklanıyor bu?
Restantum cogniscutur Quantum deligutur

z

Nasıl online izleme yapamıyorsun? Programa yallah dediğinde son surat koşarken registerleri görmeyi mi istiyorsun?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

fractal

aynen hocam son surat koşarken görmek istiyorum .aynen plc lerde monitoring yapmak gibi.örnek videolarda yapıorlar.tabi onlar launchpad ve m4 kullanıyorlar.birde bekleme fonksiyonu kullandığımda  koşarken programı durdursam hata veriyor..
Restantum cogniscutur Quantum deligutur

z

Bildiğim kadarıyla Run edilmiş CPU nun registerlerine erişemezsin. Çünkü JTAG'ın hızı buna müsade etmez. Kodları adım adım yürüteceksin bu esnada registerleri gözleyeceksin.

CCS de Keil'den farklı olarak tanımladığın sayı kadar kodları adımlatabiliyorsun. Mesela durmuş CPU'ya 100 komut işlet diyorsun.
Böyle yapınca ekranda registerlerin vızır vızır değiştiriğini görüyorsun. Senin izlediğin video da böyle çekilmiştir.

+ Koşan registerleri görecen de ne olacak? Registerleri, hatalı çalışan bir kod parçasında hatayı yakalamak için izleme ihtiyacı duyarsın. Bunun için de köşeye sıkıştırdığın suçlu fonksiyonu adım adım ilerletirken registerlerin o anki asm kodlarla uyumluluğuna bakarsın.

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

fractal

hocam ne değişti bilmiyorum ama şu an online izleme yapabiliyorum.başım göğemi erdi hayır tabiki.daha kötü neden çalışmadı ve neden çalışltığı tam bir muamma.ayriyeten gözleme yaparken değerleri yenilediğinde programda duraksamalar oluyor.şurdan anlıyorum röle 1sn röle tetikliyorum bazen röle takılı kalıyor biraz..neyse kazmaya devam.daha yolun başındayız.ntc ısı okuma yapacağım..
Restantum cogniscutur Quantum deligutur

ayhan_eee

Alıntı yapılan: Erhan YILMAZ - 06 Şubat 2013, 00:56:45
BSRR kullanarak örneğin Bit_Reset(char bit_num) fonksiyonunu gerçeklemek için en basitinden 16 kez sola kaydırma yapmak gerekli.

GPIOX_BSRR = (1 << (bit_num+16)); gibi bir işlem örneğin. Bu işlem daha çok zaman alır
GIPOX_BRR =  (1 << bit_num); bu işlemden.  Başka işlevide olabilir tabi.

Bide şöyle bir açıklama var BSRR ile ilgili
Using the GPIOx_BSRR register to change the values of individual bits in GPIOx_ODR is a 
"one-shot" effect that does not lock the GPIOx_ODR bits. The GPIOx_ODR bits can always 
be accessed directly. The GPIOx_BSRR register provides a way of performing atomic 
bitwise handling.


Yazdığınız çok mantıklı katılıyorum.Ancak benim aklıma takılan BSRR deki Reset kısmına gerek yoktu o zaman.O da Tek kaydedici ile yapmak için denebilir ancak sanki daha farklı bir amaç olmalı gibime geldi. :-\