@Kiril Kirov câu trả lời là chính xác, nó phụ thuộc chủ yếu vào tính khả dụng của trình biên dịch, nhưng một số yếu tố khác đang bị đe dọa.
Trình biên dịch chịu trách nhiệm chuyển mã C++ thành mã máy trong tập lệnh gốc. Nó cũng dựa trên thư viện chuẩn C++ mà rõ ràng là cần phải được compilable cho hệ thống của bạn bằng cách sử dụng trình biên dịch nói. Lưu ý rằng sau thao tác này, mã sản xuất không khác với mã gốc khác được tạo ra bởi các phương tiện khác (sử dụng trình biên dịch C hoặc được viết bằng tay), vì vậy không có lý do gì nó sẽ không được thực thi bởi bộ vi xử lý của bạn.
Bạn cũng cần một trình liên kết biết bố cục bộ nhớ của vi điều khiển đích (bộ xử lý + RAM + bộ nhớ flash hoặc ROM).
Bạn cũng cần có cách để flash mã vào hệ thống của mình, chẳng hạn như liên kết USB và trình điều khiển. Trong trường hợp của Arduino, bạn có thể tìm thấy tất cả các phần tử này vì nó là một nền tảng đã biết (Arduino chạy trên AVR hoặc ARM tùy thuộc vào phiên bản, vì vậy các trình biên dịch có thể tương ứng là avr-gcc
hoặc arm-none-eabi-gcc
), nhưng trong trường hợp ngoại lệ hơn nó không phải là một cho (có thể là bạn không thể flash Mastercard của bạn).
Tôi chắc chắn hy vọng C++ không _interpreted_ trên Arduino. Tất cả những gì bạn cần là trình biên dịch C++ 11/C++ 14 nhắm vào nền tảng của bạn. Ngoài ra, tôi sẽ không gọi những thay đổi được giới thiệu bởi C++ 11 "những thay đổi nhỏ" bằng bất kỳ phương tiện nào. – dureuill
@dureuill Tôi nhìn thấy và bởi nền tảng đó sẽ là bất cứ điều gì chip là trên Arduino? (như ARM 32 hay gì đó)? – Startec
Arduino không phải là một kiến trúc. Arduiono chạy trên AVR, ARM, ... Nó chỉ đơn giản là một tập hợp các chức năng/lớp học giúp nhanh chóng phát triển truy cập vào phần cứng UC và cung cấp một số công cụ trợ giúp bổ sung. Trình biên dịch phải tạo mã cụ thể cho thiết bị cơ sở và các libs cụ thể của CPU phải được chọn từ môi trường biên dịch (Makefile, IDE, ...) – Klaus