Gömülü sistemler için osiloskopta 4 kanal ve derin belleğin önemi

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
21,841
Çalıştığım firmware'de, UART üzerinden debug log bilgisi gönderen bir kütüphane kullanıyorum. Firmware'te bir sürü task paralel çalışıyor, yeni özelliklerin istenmesiyle de ilave task'ler eklenince kütüphane ile ilgili bir sorun çıktı. Böyle programlarda klasik debugger lardan elde edilebilecek fayda kısıtlıdır. Ancak olan oldu, firmware çöktü veya takıldıktan sonra debugger ile girip "post mortem" analiz yapabilirsin. Bir nevi kara kutu incelemek gibi. Ama problem nasıl meydana geldi, hangi olaylar, hangi sıra ile meydana geldi anlayamazsınız.

İşte bu noktada 4 kanallı ve derin belleğe sahip bir osiloskop çok büyük bir fayda sağlıyor. debug log sisteminde bir kesme, bir tane kesmenin tetiklediği task, bir de log bilgisi gönderen farklı task var. Bunların hepsinde GPIO işaretleme yaptım. Bir de UART portunun aktif/pasif durumunu yansıtan bir GPIO da kullandım. 4 tane GPIO toplam. Sonra da osiloskobun desteklediği maksimum bellek miktarı olan 7 Mpts ayarını yaptım. Örnekleme hızı 10 Msps ye kadar düştü, ama uç ucuna da olsa bu kesmeleri yakalamaya yeterli oldu.

Bu şekilde programı çalıştırdım. En üst sinyal kesmeler, bir alttaki kesmenin tetiklediği task, bir alttaki UART'ın aktif/pasif durumu, en alttaki de debug log üreten başka bir task. Tekrar tekrar deneyip single capture yapınca en sonunda problem meydana geliyor ve ekranda problemin oluşuna giden zamanda meydana gelen olayları gördüm ve problemi çözdüm.

1712311220837.png
 
Eğer bu osiloskopta derin bellek olmasaydı, örnekleme hızını iyice düşürmek zorunda kalacaktım, o zaman da kesmeleri kaçırma riski var. Kesme ve onun taskı duruma göre birkaç mikrosaniyede girip çıkıyor. Aynı şekilde bazan yazılımda bir problemin meydana geldiğini anlaman uzun sürüyor. Mesela ben burada problemin meydana geldiğini, belli bir süre log bilgisi gitmiyor olmasından anlıyorum. Yukarda 700 ms kaydettim, 10 Msps de 7 Mpts bellek gitti. Bazan problemin meydana geldiğini daha uzun bir sürede ancak anlayabiliyorsun. Bu durumda geçmişe dönük daha fazla kaydının olması lazım ki problemin olduğunu anlayıp osiloskobu durdurduğunda çalışabileceğin veri olsun.
 
sistemde free rtos mu çalışıyor, uart çıktıları dma üzerinden mi sürülüyor, ben dma ile uğraşmak yerine uart hızını 2mbaud gibi tutuyorum. malesef stm32lerde uart içinde adam gibi rx-tx buffer yok. neden koymazlar anlamış değilim.
 
FreeRTOS kullanıyorum. DMA da var DTC denen bir çevre birimi var Renesas RA6M2 de. Ben DTC yi kullanıyorum. Yeterince kesme sıklığını azaltıyor ve 4 Mbaud ile debug bilgisi alabiliyorum. Ama bizim partnerler windows kullandığı için mecbur baud hızını 921.6 kbaud a düşürüyorum.
 

Çevrimiçi personel

Forum istatistikleri

Konular
5,863
Mesajlar
99,975
Üyeler
2,485
Son üye
viesva

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top