ASM ile STM32 programlamaya nasıl başlamalıyım ?

Başlatan GaGuLi, 24 Ağustos 2016, 08:37:21

GaGuLi

Selamunaleyküm hayırlı günler arkadaşlar. Ne zamandır üzerinde çalıştığım stm32f103 denetleyicisine asm ile kod yazma niyetim vardı. Artık bu niyetimi hayata geçirmek, donanımı ve sistemin çalışmasını daha yakından takip etmek istiyorum. Ama önceden ASM ile pek kod yazmadım. Bunun için ASM ile kod yazmaya başlama aşamasında nasıl bir yol izlemeliyim ? sizlerin değerli tavsiyelerini bekliyorum :)

kimlenbu

Uğraşan bildiğim sadece @z var, normalde bile programlaması sıkıntılıyken asm ile evlerden ırak :)

GaGuLi

Temel olarak led yakmaya kadar anlasam gerisi gelir diye düşünüyorum da yavaştan asm ye çok uzak olduğumdan nasıl bir yol izleyeceğimiz kestiremedim. Erhan hocanın örnekleri var saolsun bu işe gönül vermiş:) çok faydalı bi yazı dizisi hazırlamış ama neredeyse sıfır olduğum için asm de pek faydalanamadım şu sıralar

GaGuLi

Anladım hocam dediğiniz gibi disasamble bölümünden inceleyerek mantığı kavramaya çalışayım en iyisi. Takıldığım yerlerde bu başlık altından sorularımı yöneltirim.

z

Alıntı yapılan: gerbay - 24 Ağustos 2016, 16:16:52
Hocam ARM Cortex serileri özellikle ASM ile değil de C ile kod yazmak için tasarlanmış opcode lar içerir.

Ne güzel işte. Makine komutları ne kadar C ye uygun tasarlanmışsa ASM yazım da o denli kolaylaşır.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ido2323

#5
Çok uzun oluyor asm ile kod yazmak her satıra açıklama gerekiyor yoksa unutuyorsun, eline kalem kağıt alıp nereye ne yazdığını not ederek çalışmak gerekiyor, bence hazır kütüphanelerini kullanmak daha mantıklı sonuçta yapılan işlemler belli fakat gerçekte ne olduğunu anlamıyorsun bile, zamanında 8 bitlik denetleyici ile 2 tane 32 bitlik sayıyı çarpan bir header hazırlamıştım, 20 küsür sayfaydı düşün artık c ile yapsan 3-5 satır, ben hiç 32 bitlik denetleyicilerde asm kullanmadım ama öğrenmek gerekiyor neyi nasıl yaptığını aksi halde arduino ile çalışmak gibi  öteye gitmiyor. . İki gündür basit bir hatayı gidermeyi deniyorum, olmuyor;

keil
hata:
.\Objects\asd.axf: Error: L6218E: Undefined symbol assert_param (referred from misc.o).

burada bağlayıcı gerekiyor, assert_param içeren fonksiyonların başına extern atarak düzeltmeyi denedim olmuyor, böyle bir hatayı düzelten var mı?

Teşekkürler.


X-Fi

Keil için herhangi bir C projesindeki fonksiyonların başına __asm yazarak bu fonksiyon içerisinde asm kod yazabilirsiniz. Bu sayede C üzerinde asm komutlarının kullanımını öğrenebilirsiniz. Hatta iki farklı fonksiyonu hem C ile hemde asm ile yazıp karşılaştırma şansınız da olur. Böylece C compiler'ı iyi tanır daha optimize kod yazarsınız.

iyi çalışmalar.
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

ido2323

Hatayı çözdüm sadece şunu(USE_STDPERIPH_DRIVER) Option for Target  kısmındaki C/C++ kısmı yazmak yeterli, assert_param hatası kaybolacaktır.