Linux bilgisayarında bir Arduino Uno'yu gdb ile nasıl ayıklayabilirim?


10

Linux bilgisayarında gdb ile Arduino Uno'da nasıl hata ayıklayabilirim (kaynak kodu tek adımda)? AVR Studio'yu şarapta veya VirtualBox'da kullanmaktan hoşlanmadığımı lütfen unutmayın.

Soru 1: Fiziksel bağlantı

Uno kartına nasıl ve ne bağlayabilirim? Benim tahminim, Uno kartı bir ATmega328 ile doldurulduğundan, tek adımlı kaynak kodunun mevcut olması gerektiğidir? Ayrıca ICSP başlığı üzerinde bir AVR JTAGICE mkII veya AVR Dragon kullanabileceğimi tahmin ediyorum.

Soru 2: GDB sunucusu

Sonra AVaRICE gibi gdb fonksiyonuna bir jtag sağlıyor gibi görünen bazı projeler olduğunu fark ettim ama başka projeler de olabilir mi?

Soru 3: Elf nerede?

Çalıştırır ve çalışırsam, Arduino IDE, oluşturulan çıktıyı hata ayıklama sembolleri ile elf dosyası gibi nerede saklar (biri olmalı)? Yoksa sadece Ardino kütüphanelerini kullanan klasik bir Makefile üretmem gerekiyor mu?

Ne / nasıl kullanılacağı hakkında bazı bilgiler bulmaya çalıştım, ama sadece bana ne yapabileceğimi söyleyen ipuçlarını buldum. Birisi beni doğru yöne itebilir mi?


Yanıtlar:


3

Derleyici yapılarını, IDE'nin eski sürümünde derleme düğmesine tıklarken shift tuşunu basılı tutarak bulabilirsiniz (<1.0 okuyun). Daha yeni sürümlerde (read> = 1.0), tercihler iletişim kutusunun altında derleme sırasında ayrıntılı çıktıyı görüntüleme seçeneği vardır (ekran görüntüsüne bakın). Ayrıntılı çıktı ile, tüm derleyici çıktılarının bittiği klasör konsolda yazdırılır (tekrar tekrar). En azından başlamanız gerekir.

ekran görüntüsü arduino derleme sırasında ayrıntılı çıkışı göster

Bir yan notta, Haziran 2012'nin başlarında Arduino geliştiricileri listesinde bu konuda her türlü sohbet vardı ve biri Arduino geliştiricileri listesine Arduino için GDB hata ayıklamasının geliştirilmiş / entegre bir şekilde bir duyuru yayınladı, ancak araştırmadım. çok daha fazla. Sanırım projeye VisualMicro (?) Deniyor . Bir Visual Studio eklentisi olarak oluşturulmuş gibi görünüyor, bu nedenle linux ortamında size yardımcı olmayabilir ve bunun üzerinde beta sürümündedir, ancak karar vermenize izin vereceğim.


"Derleme sırasında ayrıntılı çıktıyı etkinleştir" i etkinleştirdim ve yapı dizini olarak /tmp/build3652385594823436592.tmp/ gibi bir şey kullanıyorlar, ayrıca elf hata ayıklama simgelerini içermesi için -g bayrağıyla oluşturuldu. Bu, yapı yapılarını bulduğum anlamına geliyor, şimdi sadece jtag'ı çalıştırmam gerekiyor.
Johan

3

Simavr AVR işlemci simülatörü artık Arduino dahil AVR firma hata ayıklama için iyi bir GDB sunucusu sunuyor. Kendi başınıza (özel donanım yapılandırmanız için küçük bir konsol uygulaması yazmanızı gerektirir) veya şematik yakalama yoluyla donanım yapılandırmanızı tanımlayabileceğiniz Simutron GUI ortamında kullanabilirsiniz.

Not: Bu araçlarla, tüm donanım simüle edildiği için fiziksel bir bağlantınız yoktur.


2

Bu, benzer bir soruda atıfta bulunulan bir linux dergi makalesinde yanıtlanmaktadır: Jtag hata ayıklama AVR .

Temel olarak, avr-gdb ve simulavr komutlarını kullanarak, yürütme koduna adım atmak ve gözlemlemek için GDB'yi kullanırken, yazılımınızı simülatör aracılığıyla çeşitli AVR mikrodenetleyicileri üzerinde çalıştırabilirsiniz.

Bu yardımcı olur umarım!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.