Sự khác biệt về chức năng giữa trình gỡ lỗi trong mạch và trình giả lập trong mạch là gì?


12

Trình giả lập trong mạch (viết tắt ICE) tự hào về các tính năng sửa lỗi tuyệt vời của chúng, và cũng tự hào về các thẻ giá cao.

Trình gỡ lỗi trong mạch (viết tắt là ICD) có thể thực hiện hầu hết các công việc mà ICE có thể làm, nhưng thường có chi phí thấp hơn nhiều.

Tôi biết rằng vào thời điểm đó, ICE thực sự sẽ loại bỏ chip vấn đề khỏi ổ cắm và thay thế bằng cáp giả lập, nhưng với các gói TQFP hiện đại, QFN, BGA và dễ vỡ, có vẻ như hầu hết các sản phẩm tự gọi là trình gỡ lỗi "ICE" được kết nối với một tiêu đề gỡ lỗi theo cách tương tự như một ICD.

Dưới đây là một số ví dụ về các sản phẩm sử dụng "ICE" trong tên:

Ngoài ra còn có các sản phẩm JTAG 'ICE "từ một số nhà cung cấp. Lưu ý rằng tôi không giảm giá những sản phẩm này vì chúng không có tính chất vật lý, nhưng tôi sẽ giảm giá nếu chúng không hoạt động như một ICE thực sự.

Tôi cần một ICE trong các loại nhiệm vụ phát triển nào và khi nào tôi nên hài lòng với một ICD? Giả sử rằng tôi muốn duyệt qua mã của mình và không sử dụng đèn LED và câu lệnh printf ().

Một số ví dụ về các vấn đề mà bạn đã giải quyết với ICE nhưng không thể (thực tế) đã giải quyết được nếu không có nó?

Câu trả lời:


19

Một ICE (Trình mô phỏng trong mạch) thay thế chip mục tiêu. Nó hoạt động giống như con chip thực sự với phần còn lại của mạch, nhưng có tất cả các loại móc bên trong để bạn có thể thấy những gì đang xảy ra, đặt điểm ngắt, tải mã mới, lấy dấu vết, v.v. phần cứng gỡ lỗi đặc biệt được thêm vào chip mục tiêu cho mục đích đó và cố gắng cung cấp cho bạn khả năng giống như ICE. Thật không may, những người tiếp thị đã nhận ra và cố gắng xác định lại các thuật ngữ lâu đời này trong nỗ lực của họ để đánh lừa bạn nghĩ rằng sản phẩm của họ tốt hơn sản phẩm tiếp theo. RealIce của Microchip là một ví dụ đặc biệt nghiêm trọng về điều này. Đó là sự thật, nhưng một điều không phải là ICE.

Một ICE thực (không phải RealIce) là môi trường gỡ lỗi trong mạch tốt nhất. Thật không may, những thứ này đã biến mất khá nhiều vì chi phí cao để tạo ra một phiên bản liên kết đặc biệt của chip mục tiêu để sử dụng trong ICE, và thực tế là tốc độ đã tăng cao đến nỗi việc lấy đi mọi thứ từ chip là vấn đề. Một vấn đề khác là ICE yêu cầu chip mục tiêu phải ở trong ổ cắm hoặc yêu cầu bộ chuyển đổi đặc biệt được gắn thay cho chip mục tiêu để ICE có thể kết nối với các dòng của nó.

Vì vậy, ngày nay chúng ta bị mắc kẹt với các ICD. May mắn thay, họ làm hầu hết những điều bạn muốn làm với ICE. Họ thậm chí còn có một lợi thế là mã đang chạy trên chip mục tiêu thực sự, chứ không phải thứ gì đó cố gắng giống như chip mục tiêu. Nhược điểm là chúng yêu cầu tài nguyên trên chip nên không hoàn toàn minh bạch đối với mã và phần cứng của bạn giống như ICE. ICD cần truy cập vào các dòng gỡ lỗi, thường có thể có nhiều vai trò. Bạn không thể sử dụng các chân đó trong các vai trò khác trong khi gỡ lỗi. Số lượng mạch gỡ lỗi được tích hợp trong mỗi phần phải được giữ ở một phần nhỏ trong tổng số khác, chi phí sẽ quá cao, do đó các tính năng phải bị xâm phạm. Một tính năng hay mà quá đắt để thêm vào mỗi chip là khả năng theo dõi thực sự, vì điều đó đòi hỏi bộ đệm RAM lớn.

Mọi vấn đề cuối cùng có thể được giải quyết với một loạt các công cụ. Không phải là bạn có thể giải quyết nó hay không, mà là mất bao lâu và mất bao nhiêu công sức. Khi tôi thường xuyên sử dụng ICE (Microchip ICE-2000 và ICE-4000), tôi đã không sử dụng tính năng theo dõi thường xuyên, nhưng khi tôi làm các phương tiện khác sẽ tốn kém hơn đáng kể. Đôi khi bạn có một lỗi trong đó một biến đột nhiên có giá trị sai trong đó. Bạn bước qua mã và mọi thứ đều ổn và thói quen điều khiển biến dường như làm mọi thứ đúng, nhưng khi bạn chạy nó cuối cùng mọi thứ sẽ biến mất và bạn thấy biến đó bị hỏng. Nguyên nhân là một số mã khác có con trỏ xấu, tràn bộ đệm, không khớp ngăn xếp hoặc tương tự. Với ICE, bạn có thể đặt điểm dừng cho biến được thay đổi,

Hầu hết thời gian, một ICD sẽ làm đủ tốt. Đặc biệt với các chip lớn, cặp chân dành riêng để gỡ lỗi không phải là vấn đề lớn. Ngày nay tôi chủ yếu sử dụng RealIce để gỡ lỗi. Nó ổn định hơn và ít rung hơn so với ICD2. Bạn học cách sống với nó.

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.