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 : https://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.)

0 yorum:

Yorum Sayfası :


Yorum formuna konuyla ilgili görüş ve sorularınızı bırakabilirsiniz.

Yorumunuza mümkün olan en kısa sürede dönüş yapılacağından emin olabilirsiniz.


Eklenen yorumlar, moderatör onayından sonra yayınlanmaktadır.

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