Làm cách nào để gỡ lỗi Arduino Uno với gdb trên máy tính Linux?


10

Làm cách nào để gỡ lỗi (mã nguồn một bước) một Arduino Uno với gdb trên máy tính Linux? Xin lưu ý rằng tôi không thích sử dụng AVR Studio trong rượu vang hoặc VirtualBox.

Câu 1: Kết nối vật lý

Làm thế nào và làm gì để tôi kết nối với bảng Uno? Tôi đoán là do bảng Uno được trang bị ATmega328, nên có sẵn mã nguồn một bước? Tôi cũng đoán rằng tôi có thể sử dụng một AVR JTAGICE mkII hoặc AVR Dragon trên tiêu đề ICSP?

Câu 2: Máy chủ GDB

Sau đó, tôi nhận thấy rằng có một số dự án như AVaRICE dường như cung cấp một jtag cho chức năng gdb, nhưng có thể có các dự án khác?

Câu 3: Yêu tinh ở đâu?

Và nếu tôi khởi động nó và chạy, Arduino IDE sẽ ẩn đầu ra được tạo ra như tệp elf với các ký hiệu gỡ lỗi (nên có một)? Hay tôi cần phải tạo một Makefile cổ điển chỉ sử dụng libs Ardino?

Tôi đã cố gắng tìm một số thông tin về những gì / làm thế nào để sử dụng, nhưng tôi chỉ tìm thấy những manh mối cho tôi biết những gì tôi có thể làm. Ai đó có thể đẩy tôi đi đúng hướng?


Câu trả lời:


3

Bạn có thể tìm thấy các tạo phẩm của trình biên dịch bằng cách giữ phím shift khi nhấp vào nút biên dịch trong phiên bản cũ hơn của IDE (đọc <1.0). Trong các phiên bản mới hơn (đọc> = 1.0), có một tùy chọn trong hộp thoại tùy chọn để hiển thị đầu ra dài dòng trong quá trình biên dịch (xem ảnh chụp màn hình). Với đầu ra dài dòng, thư mục nơi tất cả các đầu ra của trình biên dịch được in (lặp đi lặp lại) trong bàn điều khiển. Điều đó sẽ giúp bạn bắt đầu ít nhất.

ảnh chụp màn hình arduino hiển thị đầu ra dài dòng trong quá trình biên dịch

Bên cạnh đó, có tất cả các loại trò chuyện về chủ đề này trong danh sách các nhà phát triển Arduino vào đầu tháng 6 năm 2012 và ai đó đã đăng một thông báo lên danh sách các nhà phát triển Arduino về cách gỡ lỗi GDB cải tiến / tích hợp cho Arduino, nhưng tôi chưa điều tra nó nhiều hơn nữa Tôi đoán dự án được gọi là VisualMicro (?). Có vẻ như nó được xây dựng dưới dạng plugin Visual Studio nên có thể không hữu ích cho bạn trong môi trường linux và nó ở phiên bản beta, nhưng tôi sẽ để bạn quyết định.


Tôi đã kích hoạt "Bật đầu ra dài dòng trong quá trình biên dịch" và họ sử dụng cái gì đó như /tmp/build3652385594823436592.tmp/ làm thư mục xây dựng của họ, cũng là elf được xây dựng với cờ -g để nó có chứa các ký hiệu gỡ lỗi. Điều đó có nghĩa là tôi đã tìm thấy các tạo phẩm xây dựng, bây giờ tôi chỉ cần lấy jtag để làm việc.
Johan

3

Trình mô phỏng bộ xử lý Simavr AVR hiện cung cấp một máy chủ GDB tốt để gỡ lỗi cho công ty AVR, bao gồm cả Arduino. Bạn có thể tự sử dụng nó (yêu cầu bạn viết một ứng dụng bảng điều khiển nhỏ cho cấu hình phần cứng cụ thể của bạn) hoặc từ trong môi trường GUI Simutron , nơi bạn có thể xác định cấu hình phần cứng của mình thông qua chụp sơ đồ.

Lưu ý: với những công cụ này, bạn không có kết nối vật lý vì tất cả phần cứng được mô phỏng.


2

Điều này được trả lời trong một bài báo trên tạp chí linux được tham chiếu trong một câu hỏi tương tự: Jtag gỡ lỗi AVR .

Về cơ bản, sử dụng avr-gdb và simulavr song song, bạn có thể chạy phần mềm của mình trên sự lựa chọn bộ vi điều khiển AVR thông qua trình giả lập, trong khi sử dụng GDB để xem qua và quan sát mã thực thi.

Hi vọng điêu nay co ich!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.