Tôi muốn học lập trình trong assembly cho PowerPC và ARM, nhưng tôi không thể mua phần cứng thực sự cho mục đích này. Tôi đang nghĩ về việc sử dụng QEMU cho điều đó. Tuy nhiên tôi không chắc chắn nếu nó mô phỏng cả hai kiến trúc đủ tốt, rằng tôi sẽ biên dịch và chạy các chương trình của tôi trong assembler bản địa trên nó?QEMU có tốt cho việc học lập trình trong assembly cho ARM và PowerPC không?
Trả lời
QEMU hoạt động tốt cho chương trình thử nghiệm chỉnh (tức là xem mã sẽ đúng chạy trên ARM thực tế hoặc PowerPC) nhưng nó không phải là tốt cho chương trình thử nghiệm hiệu quả: các thi đua không phải là chu kỳ chính xác và tốc độ đo với QEMU không thể tin cậy (hoặc thậm chí không tin cậy) tương quan với tốc độ trên phần cứng thực sự.
Ngoài ra, QEMU sẽ không bẫy truy cập bộ nhớ không được ký hiệu, không phải là vấn đề đối với mô phỏng PowerPC (nhưng PowerPC chấp nhận truy cập chưa được ký) nhưng có thể cho ARM (truy cập chưa được ký, ví dụ đọc từ 32 bit trong RAM từ địa chỉ không phải là bội số của 4, sẽ hoạt động tốt với QEMU nhưng sẽ kích hoạt ngoại lệ trên một bộ xử lý ARM thực sự). Ngoài những điểm này, QEMU là tốt cho việc phát triển lắp ráp trên ARM hoặc MIPS (chưa thử PowerPC, vì tôi đã tìm thấy một iBook cũ trên eBay cho điều đó, nhưng tôi đã thực hiện lắp ráp ARM và MIPS với QEMU và sau đó chạy kết quả mã trên phần cứng thực sự, và điều này làm việc). Bạn có thể mô phỏng toàn bộ hệ thống và chạy Debian trong đó (trong trường hợp trình biên dịch, trình liên kết, trình soạn thảo văn bản ... cũng sẽ chạy trong mô phỏng), hoặc sử dụng "mô phỏng chế độ người dùng" nơi thực thi ARM/MIPS được chạy trực tiếp, với một trình bao bọc chuyển đổi các cuộc gọi hệ thống thành các máy chủ cho máy chủ (điều này giả định rằng máy chủ là một máy tính chạy Linux). Sau này là thuận tiện hơn (bạn có quyền truy cập vào thư mục nhà thông thường của bạn, các công cụ lập trình có nguồn gốc ...) nhưng yêu cầu cài đặt các công cụ phát triển chéo. Xem buildroot cho điều đó (và liên kết với -static
, điều này sẽ tránh được nhiều chứng đau đầu).
"ví dụ: đọc một từ 32 bit trong RAM từ một địa chỉ không phải là bội số của 4, sẽ hoạt động tốt với QEMU nhưng sẽ kích hoạt ngoại lệ trên bộ xử lý ARM thực sự)." Trên thực tế, trong một số phiên bản lệnh hướng dẫn ARM, sử dụng các địa chỉ chưa được căn chỉnh sẽ xoay nội dung, mặc dù trên ARMv6 và sau đó, truy cập thông thường không được hỗ trợ (có thể cấu hình được). http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0472c/BABFDBCJ.html – rakslice
- 1. Thi đua PowerPC: Qemu, PearPC hoặc ...?
- 2. Nguồn cho việc học Java là một lập trình viên
- 3. Một trò chơi giáo dục cho việc học lập trình?
- 4. Ngôn ngữ lập trình tốt nhất cho việc học máy là gì?
- 5. Tài nguyên tốt cho việc học WPF
- 6. Một số tài nguyên tốt cho việc học lập trình luồng là gì?
- 7. Nguồn tốt cho việc học dưa chuột và RSpec?
- 8. Học lắp ráp ARM
- 9. Tài nguyên tốt cho việc học XNA là gì?
- 10. Một số tài nguyên tốt cho việc học F # hãy
- 11. Tài nguyên tốt cho việc học PL/pgSQL?
- 12. Hướng dẫn nào tồn tại tốt cho việc học pycURL?
- 13. Trình giải mã ReSharper - tôi có thể sử dụng nó cho các assembly độc lập không?
- 14. Tìm kiếm một nguồn tốt cho việc học ASP.NET MVC
- 15. Tài nguyên tốt cho việc học tập Mục tiêu-C
- 16. Tài nguyên tốt nhất cho việc học tập Generics .NET?
- 17. Bộ đánh giá tốt nhất cho việc học phát triển C/C++ được nhúng là gì?
- 18. Học PHP và lập trình web cho các lập trình viên trung gian
- 19. Một tài nguyên tốt cho việc học HTML5
- 20. Tải Lắp ráp PowerPC Ngay lập tức
- 21. cổng ttyO không có địa chỉ cổng tốt trên QEMU 1.4.0 chạy hình ảnh cho beagleboard-xm
- 22. Truyền tham số và giá trị trả về cho một chương trình con trong assembly
- 23. Có trình chỉnh sửa tốt nào cho lập trình Lisp, ngoài Emacs không?
- 24. Cách tốt nhất để học hệ thống Vợt Macro cho các lập trình viên bắt buộc
- 25. Delphi = Pascal? Tài nguyên cho việc học?
- 26. Lập trình trong ứng dụng cho ARM (Cortex M3) hoạt động như thế nào?
- 27. Thuật toán lập lịch trình Thời gian cho Học sinh
- 28. Route cho việc học Smalltalk aka Squeak
- 29. Lập trình toán học và trò chơi
- 30. Tài nguyên cho việc học LINQ?
Vì mục đích của Qemu là giả lập bộ vi xử lý, nó có khả năng mô phỏng những kiến trúc "đủ tốt", nếu tài liệu nói để hỗ trợ chúng – ShinTakezou
ARM uC rất rẻ, bạn cũng có thể mua phần cứng (và JTAG 'dongle') . Bạn có thể nhận cả hai dưới 100 đô la Mỹ (bao gồm phí giao hàng) từ eBay. Bạn phải yêu người Trung Quốc cho các thiết bị điện tử giá rẻ :) – leppie
Bỏ phiếu để đóng như ý kiến dựa. –