Kesme noktaları, derleyicinin kodunuza nasıl çalıştığını görmenin harika bir yoludur. Şimdi sorum şu: Kodunuzda hata ayıklama yaparken kesme noktaları kullanma imkanı var mı?
Kesme noktaları, derleyicinin kodunuza nasıl çalıştığını görmenin harika bir yoludur. Şimdi sorum şu: Kodunuzda hata ayıklama yaparken kesme noktaları kullanma imkanı var mı?
Yanıtlar:
Majenko'nun cevabında belirtildiği gibi, Arduino IDE bir kesme noktası mekanizması sağlamaz, ancak Atmel Studio kesme noktalarını destekler . [*]
Ancak, bir anahtarınız ve bir LED'iniz varsa, programınızın ilerlemesini kesme noktalarının bazı avantajlarını sağlayacak şekilde izleyebilirsiniz. Örneğin BPReport()
, seri çıkış veya LCD aracılığıyla kritik değişkenlerin değerlerini bildiren bir alt rutin eklersiniz , daha sonra LED'i yakar ve aniden açılma ile anahtara basılana ve bırakılıncaya kadar bekler. BPReport()
Koşulsuz bir kesme noktası istediğiniz yerde rutininizi arayın . Koşullu kesme noktaları, bir rutin olabilir BPReportIf(cond)
aramaları BPReport()
durumunda cond
geçerlidir. Seri yoluyla çıkış yapmak istemiyorsanız, birkaç LED veya LCD kullanabilirsiniz ve harici fren kontrolleri istiyorsanız (örneğin, cond
ekstra anahtarlardan birinin testi olabilir) birkaç anahtar kullanabilirsiniz .
[*] Bazı donanım hata ayıklayıcıları, kesme noktaları her eklendiğinde, değiştirildiğinde veya kaldırıldığında indirilen kodu değiştirir. Bu kullanım flash belleği zaman zaman indirmekten daha hızlı yıpranacaktır. Bir çip bu tür hata ayıklama için yoğun bir şekilde kullanılmışsa, o çipi bir üretim sisteminde kullanmayın.
Majenko'nun cevabı doğru olmasına rağmen başka seçenekler de var.
Majenko tarafından belirtildiği gibi gerçek donanım hata ayıklama ile ilgili olarak şunu söyleyebilirim:
Tamamen farklı bir kategorideki diğer bir hata ayıklama seçeneği, kodunuzu, karar mantığı (donanıma bağlı olmayan) ve eylemin (donanıma bağlı) tamamen ayrılacak şekilde düzenlemektir.
Ardından çiziminizi yerel bir program olarak derleyin ve yerel makinenizdeki "karar mantığında" hata ayıklayın. Bu yöntem "donanım hata ayıklamasına" izin vermez. Bu yöntem aynı zamanda birim testine de olanak tanır.
Yerel makinenizin muhtemelen 32 veya 64 acı olduğunu ve çoğu Arduino'nun 8 acı olduğunu ve bu yöntem kullanılırken veri türlerinde farklılıklara neden olacağını unutmayın.
Arduino-ayıklama kütüphane Arduino skeçler için basit on-hedefin ayıklayıcısını sağlar. Hata ayıklama komutu doğrudan taslağa eklenir. Kesme noktaları ve iddialarda bir hata ayıklayıcı komut kabuğu başlatılır.
Yukarıdaki ekran görüntüsü , uygulama tarafından kullanılan Seri çıkış monitörüne sahip bir Arduino Mega ve hata ayıklayıcı kabuğu için kullanılan Seri1 örnek çizimini göstermektedir .
Çizim Hata Ayıklama Komutları
Kabuk Komutlarında Hata Ayıklama
Tüm hata ayıklama kabuğu komutları tek karakterli komutlarla kısaltılabilir. Daha fazla bilgi için lütfen README'ye bakınız; kurulum detayları, örnek eskiz ve kıyaslama.