Bagaimana cara men-debug (source code single step) a Arduino Uno dengan gdb pada PC Linux? Harap dicatat bahwa saya tidak suka menggunakan AVR Studio dalam anggur atau VirtualBox.
Pertanyaan 1: Koneksi fisik
Bagaimana dan apa yang saya hubungkan ke papan Uno? Dugaan saya adalah bahwa karena papan Uno diisi dengan ATmega328, kode sumber langkah tunggal harus tersedia? Saya juga menebak bahwa saya dapat menggunakan AVR JTAGICE mkII atau AVR Dragon di atas header ICSP?
Pertanyaan 2: Server GDB
Lalu saya perhatikan bahwa ada beberapa proyek seperti AVaRICE yang tampaknya menyediakan fungsi jtag ke gdb, tetapi mungkin ada proyek lain?
Pertanyaan 3: Di mana elf itu?
Dan jika saya mengaktifkannya, di mana Arduino IDE menyembunyikan output yang dihasilkan seperti file elf dengan simbol debug (harus ada satu)? Atau apakah saya perlu membuat Makefile klasik yang hanya menggunakan lib Ardino?
Saya mencoba mencari beberapa info tentang apa / bagaimana cara menggunakan, tetapi saya hanya menemukan petunjuk yang memberi tahu saya apa yang bisa saya lakukan. Bisakah seseorang mendorong saya ke arah yang benar?
Jawaban:
Anda dapat menemukan artefak kompiler dengan menahan tombol shift saat mengklik tombol kompilasi dalam versi IDE yang lebih lama (baca <1.0). Dalam versi yang lebih baru (baca> = 1.0) ada opsi di bawah dialog preferensi untuk menampilkan output verbose selama kompilasi (lihat screenshot). Dengan keluaran verbose, folder tempat semua keluaran kompiler berakhir dicetak (berulang kali) di konsol. Setidaknya itulah yang harus Anda mulai.
Di samping catatan, ada segala macam obrolan tentang hal ini pada daftar pengembang Arduino sebelumnya pada Juni 2012 dan seseorang memposting pengumuman ke daftar pengembang Arduino tentang cara yang ditingkatkan / terintegrasi dari debugging GDB untuk Arduino, tapi saya belum menyelidiki lebih jauh. Saya kira proyek ini disebut VisualMicro (?). Sepertinya sudah dibangun sebagai plugin Visual Studio jadi mungkin tidak membantu Anda dalam lingkungan linux, dan itu masih dalam versi beta, tetapi saya akan membiarkan Anda memutuskan.
sumber
Simulator prosesor AVR Simavr sekarang menyediakan server GDB yang baik untuk debugging AVR firmvare, termasuk Arduino. Anda dapat menggunakannya sendiri (mengharuskan Anda untuk menulis aplikasi konsol kecil untuk konfigurasi perangkat keras khusus Anda) atau dari dalam lingkungan GUI Simutron , tempat Anda dapat menentukan konfigurasi perangkat keras Anda melalui penangkapan skematis.
Catatan: dengan alat-alat ini Anda tidak memiliki koneksi fisik karena semua perangkat keras disimulasikan.
sumber
Ini dijawab dalam artikel jurnal linux yang dirujuk dalam pertanyaan serupa: Jtag debugging AVR .
Pada dasarnya, menggunakan avr-gdb dan simulavr bersama-sama, Anda dapat menjalankan perangkat lunak Anda pada pilihan mikrokontroler AVR melalui simulator, sambil menggunakan GDB untuk melangkah dan mengamati kode pelaksana.
Semoga ini membantu!
sumber