Tùy chọn lập trình khác với C ++


14

Tôi có thể lập trình Arduino của mình bằng bất kỳ ngôn ngữ lập trình nào ngoài C ++ không? Nếu vậy, ngôn ngữ lập trình nào? Tôi cần phần mềm nào để biên dịch và tải mã của mình lên Arduino?



Thật không may, đây là một bản sao hiệu quả của một câu hỏi không phải là Arduino.SE: xem ở đây Tôi nghĩ rằng câu hỏi tôi đã liên kết nên được chuyển đến đây sau khi beta kết thúc, nhưng chưa phải lúc nào.
apnorton

@anorton Câu hỏi đó là hỏi về các IDE thay thế. Câu hỏi này không phải là một bản sao vì nó nói về các ngôn ngữ lập trình thay thế.
tstew

@ user2202326 Xin lỗi ... Tôi dường như nhớ lại nhiều người trả lời bằng các ngôn ngữ khác với IDE trên luồng đó, nhưng, rõ ràng, tôi đã sai. Tiếp tục.
apnorton

Bạn có thể xem xét Netduino nếu bạn quen thuộc với C # (Visual Studio là cách để đi, nhưng có nhiều cách khác để biên dịch mã C #). Tôi không biết bạn có bảng nào và nếu nó tương thích. netduino.com
Jason Down

Câu trả lời:


5

Một số thường được biết đến:

Về lý thuyết, bạn sẽ có thể mở rộng avr-gcc để hỗ trợ các ngôn ngữ khác, mặc dù đây là công việc không hề nhỏ. Tôi nên cũng báo trước rằng hỗ trợ cho các ngôn ngữ khác hơn so với C thường đi kèm với một số hạn chế khá nặng vào các thành phần ngôn ngữ - ví dụ, ngay cả với C ++ nó khuyến khích để được instantiating đối tượng mới như mallocfreecực kỳ tốn kém cả về không gian bộ nhớ và chu kỳ.

Bên cạnh việc sử dụng Google, các tài liệu tham khảo sau đây có thể áp dụng Bấm vào đây.


8

Về lý thuyết, bất kỳ trình biên dịch nào tạo ra lắp ráp AVR đều có thể được sử dụng (giới hạn modulo về kích thước mã, sử dụng ram, v.v.).

Các phụ trợ AVR tồn tại cho cả LLVMGCC - vì vậy về mặt lý thuyết, với một số nỗ lực, hầu hết các ngôn ngữ được hỗ trợ bởi các giao diện của LLVM và GCC có thể được biên dịch sang AVR. Một câu hỏi lớn sẽ là hỗ trợ thư viện, vv

Không bao giờ ít hơn, đây là một vài lựa chọn kỳ lạ cho tinh thần của câu hỏi, thay vì thư của nó [1].

  • AMForth , một phương ngữ thứ tư có thể được chiếu vào Arduino.
  • AVR-Ada : Ada cho bộ vi điều khiển AVR.
  • CƠ BẢN : Mang lại Goto!

Oh, và bạn có thể viết Hội đồng AVR thô !

[1] - Tôi chưa từng thử những thứ này!


2

Cũng có một số người làm việc trên các hệ thống dựa trên Javascript node.js. Một cái đã có sẵn công khai là Espruino và một cái khác là Tessel ra mắt vào mùa xuân 2014.


1

Vì avr-g ++ nên hỗ trợ tất cả các cấu trúc C / C ++ tiêu chuẩn, có thể mã hóa lắp ráp nội tuyến. Thông tin thêm về chủ đề diễn đàn arduino.cc này


Lắp ráp nội tuyến không phải là một phần của các tiêu chuẩn C / C ++, nhưng gcc và trình biên dịch microsoft c hỗ trợ nó, mặc dù không thể so sánh được.
tbodt

đúng, và avr_gcc cũng vậy.
Faux_Clef

Không có gì đánh bại việc viết mã thực thi trong hex nào.
Faux_Clef

1

Tôi ngạc nhiên khi không có ai đề cập đến hội AVR !

Lắp ráp thường không được cho là thú vị nhất, hoặc thậm chí là một phương pháp lập trình dễ dàng, nhưng dù sao, nó có thể 100% với tất cả các arduino dựa trên AVR. Các bảng SAM có thể sẽ không hoạt động với hương vị này, nhưng vẫn có thể sử dụng lắp ráp trong lập trình của họ.

Tất cả các bo mạch Arduino (khi đăng bài) đều hỗ trợ lập trình lắp ráp thông qua Atmel Studio , SDK được tạo cho các chip dựa trên Atmel.

Hội được hỗ trợ một cách tích cực bởi tất cả các thiết bị Atmel và không yêu cầu bộ tải khởi động để hoạt động, vì vậy tất cả các chương trình vốn là thời gian thực.


2
Lưu ý rằng lắp ráp cũng được hỗ trợ bởi chuỗi công cụ gcc, được bao gồm trong cài đặt Arduino IDE.
Edgar Bonet

@EdgarBonet Đúng, đó là lý do tại sao các __asm__("Assembly code here")công việc để thêm lắp ráp nội tuyến vào bất kỳ bản phác thảo nào. Đối với hầu hết các chương trình, đây là một ý tưởng tồi, tuy nhiên, vì khó đạt được sự độc lập nền tảng với phương pháp này.
tuskiomi
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.