2012-04-01 27 views
7

Tôi đang làm việc để gỡ lỗi bằng gdb. tôi muốn biết làm thế nào gdb hoạt động nội bộ để thiết lập một brekpoint trên một bộ xử lý nhúng thông qua JTAG.Trình gỡ lỗi như gdb hoạt động như thế nào để đặt điểm ngắt thông qua JTAG?

+0

bản sao có thể có của [Luồng công việc chung của JTAG trong hệ thống phát triển được nhúng?] (Http://stackoverflow.com/questions/3775445/general-jtag-working-flow-in-an-embedded-development-system) – Gilles

Trả lời

1

Điều này khác nhau đối với mọi bộ xử lý, bạn phải tra cứu chi tiết trình gỡ lỗi jtag cho bộ xử lý cụ thể. không chỉ xử lý gia đình nhất thiết mà là bộ vi xử lý cụ thể. Datasheets/hướng dẫn người dùng, nếu có, thường có sẵn từ nhà cung cấp chip hoặc nhà cung cấp lõi tùy thuộc vào sản phẩm.

+0

những gì tôi muốn biết là sau khi kết nối hội đồng quản trị của tôi với Pc bằng cáp jtag, nếu tôi nhập ví dụ "bp 25" với GDB, điều gì sẽ xảy ra sau đó cho lệnh đó để được thực thi với bộ xử lý nhúng của tôi (Microblaze) JTAG? – jenje

+0

bạn phải tìm kiếm bộ xử lý đó và các lệnh jtag, nó có thể là một vài đến vài nghìn lệnh khác nhau xảy ra để thực hiện điều đó. Nếu bạn không muốn tra cứu biểu dữ liệu thì hãy tìm trong gdb soruces, gdb là mã nguồn mở, các câu trả lời cho các câu hỏi của bạn đều có trong các tài liệu và phần mềm mở. Xây dựng lại gdb, thêm một số printfs, tìm hiểu mã quan tâm. –

3

Nó hoặc là chương trình đăng ký điểm ngắt phần cứng hoặc đặt điểm ngắt phần mềm bằng cách thay thế lệnh tại điểm ngắt bằng lệnh sẽ gây ra ngoại lệ.

0

Một vài lần tôi đã sử dụng GDB kết hợp với một đơn vị JTAG, GDB đã liên lạc qua JTAG bằng cách sử dụng chương trình gdbserver xử lý các chi tiết của JTAG. Ví dụ, sử dụng một đơn vị OpenOCD JTAG: http://openocd.sourceforge.net/doc/html/GDB-and-OpenOCD.html

này về cơ bản có nghĩa là GDB không biết nhiều về bất cứ điều gì về đơn vị JTAG - nó dựa trên giao diện gdbserver và máy chủ mà sau đó làm bất cứ điều gì nó cần phải đằng sau hậu trường để làm những gì GDB yêu cầu.

Các vấn đề liên quan