2013-07-20 123 views
11

Tôi mới đến kiến ​​trúc cánh tay, tôi làm việc trên phần mềm nhúng và đã cố gắng tìm hiểu về tệp .axf có trong thư mục gỡ lỗi nhị phân của dự án của tôi.Tệp .axf là gì?

Phát hiện ra rằng đó là tệp định dạng tệp thực thi được tạo bởi trình liên kết trong khi quá trình tạo và được sử dụng để gỡ lỗi các sự cố. Vì vậy, nó là hiển nhiên rằng nó có chứa một số thông tin gỡ lỗi nhưng nó không rõ ràng loại thông tin đó là gì? Và cũng có tồn tại một tập tin .map trong thư mục gỡ lỗi, vì vậy những gì có thể là sự khác biệt giữa hai tập tin này?

+1

Tôi đã googled nó cho bạn. , hy vọng nó sẽ giúp ích một chút. – lulyon

+1

Cảm ơn, tôi đã đọc liên kết đó. Nhưng tôi muốn biết loại thông tin nào chứa nó. Ngoài ra sự khác nhau giữa các tệp .axf và .map là gì? – Pravi

+6

axf là tệp nhị phân, có mã máy (và những thứ khác), như câu trả lời google ở ​​trên nói rằng nó là một trình bao bọc xung quanh một elf hoặc aif. nói chung các tệp bản đồ chỉ có một bản đồ, một danh sách các địa chỉ, nơi mọi thứ kết thúc sau quá trình liên kết. –

Trả lời

18

Tệp AXF là định dạng tệp đối tượng được tạo bởi trình biên dịch RealView của ARM (cũng là một phần của ARM-MDK của Keil) và chứa cả mã đối tượng và thông tin gỡ lỗi. Trong trình gỡ lỗi, trong khi chỉ mã đối tượng được nạp vào chính đích, cả mã và thông tin gỡ lỗi được nạp vào bộ nhớ của máy chủ phát triển.

Khi gỡ lỗi (bất kỳ loại nào - không chỉ bị treo) qua JTAG, SWD hoặc kết nối khác, mã cần phải có sẵn trên máy chủ cùng với thông tin gỡ lỗi liên kết mã đó với mã nguồn ban đầu. Qua kết nối gỡ lỗi, chỉ có các dữ liệu tối thiểu như giá trị đăng ký được chuyển, vì vậy ví dụ trình gỡ lỗi sẽ lấy giá trị bộ đếm chương trình và có thể hiển thị bộ mã hóa và mã nguồn có sẵn trên máy chủ bằng cách sử dụng dữ liệu gỡ lỗi trong AXF.

Các tập tin MAP chứa một số các thông tin tương tự, nhưng nó được thiết kế để có thể đọc con người và tiêu thụ chứ không phải sử dụng máy, và không chứa các dòng mã nguồn cho đối tượng đang hiệp hội dữ liệu cần thiết debugger cấp nguồn .

Chủ yếu là bạn có thể bỏ qua nó - trình biên dịch tạo ra nó, trình gỡ rối tải nó. Toolchain của bạn cũng có thể tạo ra một tệp .hex mà bạn muốn sử dụng cho lập trình sản xuất và chỉ chứa mã máy và dữ liệu không đổi và các bộ khởi tạo.

+8

(các tệp .axf là định dạng ELF, giống như các tệp .elf thường được đặt tên và có thông tin gỡ lỗi DWARF) – James

+0

@James: Vâng, được đề cập bởi dwelch trong một nhận xét cho câu hỏi. – Clifford