TOSSIM'de Hata Ayıklamak ve DBG'nin Kullanımı

Yazar:

Bundan önceki yazımızda, DBG modlarının tam setini, build/pc/main.exe --help yazarak görebilirsiniz demiştik.

Öncek Yazı : TinyOS'ta TOSSIM İle Simülasyon Yapmak (Detaylı Anlatım)

Bu yazıda ise DBG'nin kullanımı ve DBG'nin modların kullanımına yoğunlaşacağız.


TinyOS'taki uygulamaların bileşenleri için, DBG'nin hata ayıklamak için usr1, usr2, usr3 ve temp olmak üzere 4 farklı modu vardır. TinyOS'ta DBG komutu şu parametreleri alır :

dbg(, const char* format, ...);

Mode parametresi, bu mesajın hangi DBG modlarında yazdırılacağını belirtir. Modların tamamına tos/types/dbg_modes.h dosyasında bulabilirsiniz. dbg ifadesi printf() sözdizimini içerir ve string çıktısı verir. Örneğin şu dosyayı tos/lib/Counters/Counter.nc editörde açın. Daha sonrasında ise Timer.fired() fonksiyonunda return ifadesinden önce aşağıdaki komutu ekleyin :

dbg(DBG_TEMP, "Sayaç: Value is %i\n", (int)state);


Üstteki kod kod parçasında olduğu gibi dbg'nin modunun ayarlandığı ilk parametreyi DBG_TEMP olarak ayarlayın ve tek düğüm (mote) için simülasyonu çalıştırın. Simülasyon çalıştığında "Sayaç" değerinin arttığını göreceksiniz.

Genel olarak, üstteki kod örneğinden de göreceğiniz üzere, TinyOS kodundaki "DBG modu", simülatörü çalıştırdığınızda DBG alt tire çalıştırmak istediğiniz özellik (DBG_özellik) ile birlikte kullanılır. Modun kullanımı için birkaç örnek :

  • aktif mesajlar modu için DBG_AM
  • paketler için DBG_PACKET
  • boot işlemi için DBG_BOOT

Simülatörü çalıştırırken çoklu modları etkinleştirebildiğiniz gibi, tek bir hata mesajı da birden fazla modda etkinleştirilebilir. Bunun için mod tanımları arasınad şu ayıraç operatöründen "|" eklemeniz yeterli olacaktır.

Örneğin;

dbg(DBG_TEMP|DBG_USR1, "Sayaç: Value is %i\n", (int)state);

Bu kodu çalıştırdıktan sonra, hangi mod aktifleştirilmişse ekran o moda ait çıktılar göreceksiniz. Kodu çalıştırarak bunu kendiniz de test edebilirsiniz.

Bu yazının orjinaline şu linkten ulaşabilirsiniz : http://www.cse.iitd.ernet.in/~pulkit/embedded2/docs/lesson5.html

Yazının çevirisi tamamen Ali ARSLAN tarafından yapılmış olup, ilk defa Blogkafem.net üzerinden yayınlanmıştır. Kopyalamanız halinde lütfen kaynak gösteriniz. Konuyla ilgili farkettiğiniz çeviri veya yazım hatalarını, aşağıdaki yorum formu aracılığıyla iletebilirsiniz. İyi çalışmalar.

Thanks to Indian Institute of Technology Delhi for TinyOS documentation that they present. (Sundukları TinyOS dokümanları için Hindistan Teknoloji Enstitüsü'ne teşekkürler.)





Hey!

Blogkafem'de okuduğunuz içeriklerle ilgili kişisel Twitter hesabım üzerinden benimle iletişme geçmek isterseniz Twitter adresim : www.twitter.com/aliarslan10

Sosyal medya hesabım dışında Blogkafem'de okumuş olduğun içerik ile ilgili belirtmek istediklerinizi aşağıdaki yorum formuna yazabilirsin. En kısa sürede dönüş yapacağımdan emin olabilirsin. :)

Okuduğunuz içerik faydalı olduysa #blogkafem etiketiyle okuduğunuz içeriğin linkini Twitter'da paylaşarak Blogkafem'e destek olabilirsiniz.

0 yorum:

Yorum Sayfası :



Yorum yaparken dikkat edilmesi gerekenler;

1. Yorum Formunu doldurduktan sonra Profil Seç -> ADI/URL bölümünden isminizi yazıp yorum yaparsanız size karşı bir hitap şeklimiz olur. (URL kısmını boş bırakabilirsiniz.)

2. Anonim olarak yaptığınız yorumlar "Adsız" olarak gözükmektedir.

3. Türkçe yazım ve dilbilgisi kurallarına uymaya özen gösteriniz.

4. Küfür,hakaret,mail adresi veya konu ile ilgisi olmayan reklam amaçlı website adresi içeren yorumlar yayınlanmamaktadır.

Custom Search

Kafeyi Dikizleyenler :)

Blog Istatistik

BLOGKAFEM.NET

© Copyright 2008-2017
Sitedeki yazıların her hakkı BLOGKAFEM.NET sitesine aittir.
Kopyalanması halinde lütfen kaynak gösteriniz.
DMCA.com Protection Status
Anasayfa | Hakkımızda | Bizden | Reklam | İletişim