Viết mã hội ARM


20

Sau khi nhận được Raspberry Pi, tôi quyết định rằng tôi muốn học cách viết mã lắp ráp ARM. Câu hỏi của tôi là, tôi cần gì để bắt đầu? Tôi giả sử rằng đã có một trình biên dịch được cài đặt nhưng tôi không biết nó là gì (gcc có thể?). Bất kỳ trợ giúp được đánh giá cao!


Đây là một cuốn sách (miễn phí) khác về lắp ráp ARM: yurichev.com/writings/RE_for_beginners-en.pdf
Dennis Yurichev

Câu trả lời:


19

Phụ thuộc vào số lượng trình biên dịch bạn muốn viết. Nếu bạn chỉ muốn viết các đoạn nhỏ được nhúng trong mã C, gccthì đó thực sự là những gì bạn đang tìm kiếm. Ví dụ về cách sử dụng lệnh asmtrong C, xem tài liệu tham khảo asm nội tuyến tại: Sách hướng dẫn lắp ráp nội tuyến ARM GCC

Mặt khác, nếu bạn muốn viết nhiều hơn chỉ những đoạn nhỏ hơn thì bạn nên sử dụng một trình biên dịch đầy đủ. Đây sẽ là có sẵn như là một trong hai as, gashoặc cả hai (bí danh).

Và cuối cùng bạn sẽ cần tìm hiểu một chút về tập lệnh ARM. Có một tài liệu tham khảo hữu ích tại: Hướng dẫn tham khảo kỹ thuật ARM1176JZF-S .

NB Hãy nhớ những gì RPi chỉ hỗ trợ hướng dẫn armv6 - vì vậy đừng cố sử dụng bất cứ thứ gì từ armv7

Chúc may mắn!! :)


4

Tôi đã bắt đầu cuộc phiêu lưu của mình với mã lắp ráp ARM cách đây không lâu và đây là tài nguyên của tôi:

  • Đại học Cambridge đã xuất bản một bộ hướng dẫn rất tốt ở đây: Baking Pi . Nó bao gồm một mẫu cho hệ điều hành của riêng bạn, ví dụ mã hoàn chỉnh cho mỗi hướng dẫn và tất cả các hướng dẫn về cách xây dựng và chạy mã của bạn.
  • Ngoài ra, cuốn sách khổng lồ này sẽ bao gồm tất cả các cơ sở: Hướng dẫn dành cho nhà phát triển hệ thống ARM .

3

Mặc dù tôi khá thoải mái với giao diện dòng lệnh, tôi không thể cưỡng lại sự tiện lợi của GUI. Cách đây một thời gian, tôi phát hiện ra rằng tôi có thể sử dụng CodeBlocks IDE để phát triển các chương trình ngôn ngữ lắp ráp ARM trong Raspberry Pi. Vì vậy, tôi đã viết một hướng dẫn và gắn nó vào hướng dẫn lập trình lắp ráp Raspberry Pi mà tôi đã viết cho trang web của cuốn sách Hội nghị ARM Mazidi:

http://www.microdigitaled.com/ARM/ARM_ASM_books.htm

Tại trang web, nhấp vào liên kết "Lập trình hội đồng ARM bằng GUI Raspberry Pi."

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


1

GCC được cài đặt theo mặc định. Nếu bạn chưa quen với Raspberry Pi, tôi khuyên bạn nên xem ngôn ngữ lập trình dễ dàng hơn lắp ráp ARM. Không có bất kỳ IDE nào để lắp ráp, vì vậy bạn sẽ phải sử dụng trình soạn thảo văn bản và lắp ráp nó thông qua thiết bị đầu cuối. Tôi khuyên bạn nên sử dụng Gedit để dễ sử dụng. Mặc dù để có được cú pháp tô sáng để lắp ráp, tôi đã phải truy cập github, cụ thể là trang của Shinyquagsire23. Nó rất đẹp. Về sự giúp đỡ Tài nguyên tốt nhất mà tôi tìm thấy là "Ngôn ngữ hội Raspberry Pi: Người mới bắt đầu Raspbian" của Bruce Smith. Bạn có thể tìm thấy nó trên Amazon. Ông giải thích lắp ráp theo một trong những cách rõ ràng và đơn giản nhất mà tôi đã tìm thấy.


1

Tìm hiểu với các ví dụ runnable

Tôi đang làm việc trên: https://github.com/cirosantilli/arm-assinstall-cheat

Tính năng, đặc điểm:

  • lắp ráp chính xác có thể được chạy trên máy chủ Linux với chế độ người dùng QEMU, vì vậy bạn có thể thử mọi thứ nhanh hơn trên máy chủ của mình trước khi chuyển sang bản gốc trên Pi
  • bao gồm cả ARMv7 và ARMv8
  • thiết lập GDB tốt, ngay cả trên máy chủ và bản địa
  • đã xác nhận hiển thị số dây chuyền lắp ráp nơi xảy ra sự cố
  • sử dụng thư viện chuẩn C cho IO, về lý thuyết, hệ điều hành này có thể di động và cho phép dễ dàng sử dụng lại các tính năng như printfmemcpy
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.