Title Image

Blog Logo

Cross Compiler

 🌱 Cross Compiler

    Hồi mới học về lập trình sau đó là lập trình vi điều khiển, mình nghĩ là việc biên dịch một chương trình C trên máy tính và Vi điều khiển là giống nhau, nhưng thực tế lại không phải như vậy @@ Chúng có một chút thay đổi để phù hợp với target mà file binary nạp xuống.

    👉 Lúc đó cầm Dev-C, Codeblocks build ra cái file .exe, rồi bên vi điều khiển là file .hex. Nghĩ là cái định dạng nó khác nhau thôi chứ nội dung file nhị phân vẫn thế.

    👉 Thế rồi thấy người ta bảo học GCC mình cũng mày mò, ơ rồi ra nhị phân xong làm thế nào nữa? cho xuống vi điều khiển nó vẫn chạy đúng không?

    😅 Câu trả lời là không

    Nhìn sâu xuống dưới thì tập lệnh assembly của con 8051 với con STM32 nó khác nhau, chứng tỏ file nhị phân của cùng chương trình sẽ là khác nhau. Tức là mỗi con chip sẽ cần có những cách build chương trình ra file nhị phân khác nhau. Máy tính (của mình là chip Intel x86) nó cũng thế. Vậy chúng ta lập trình vi điều khiển trên máy tính sẽ cần dùng gì, thay vì cái GCC Compiler ???

    👉 Câu trả lời là cái Cross Compiler, nó cho phép mình build chương trình trên một máy tính (chip khác - x86 Intel chẳng hạn), rồi nạp và chạy trên một chip khác (ARM).

Máy tính mà mình build chương trình được gọi là "host", trong khi môi trường máy tính (chip) chạy gọi là "target".

    😇😇😇

    Lan man quá, nhưng chip ARM (rất phổ biến) có cung cấp cái trình biên dịch riêng cho mình, gọi là GNU Arm Embedded Toolchain. Mọi người có thể tham khảo để sử dụng :)) Có thể mình sẽ review cách sử dụng ở những bài viết sau.

Link truy cập

Đăng nhận xét

0 Nhận xét