C ++ 이외의 프로그래밍 옵션


14

C ++ 이외의 다른 프로그래밍 언어를 사용하여 Arduino를 프로그래밍 할 수 있습니까? 그렇다면 어떤 프로그래밍 언어입니까? 코드를 컴파일하여 Arduino에로드하려면 어떤 소프트웨어가 필요합니까?



불행히도 이것은 Arduino 이외의 SE 질문의 효과적인 복제입니다. 여기를 참조하십시오 . 베타가 끝난 후에 내가 연결 한 질문을 여기로 옮겨야하지만 아직은 아닙니다.
apnorton

@anorton이 질문은 대체 IDE에 대한 질문입니다. 이 질문은 대체 프로그래밍 언어에 대해 이야기하기 때문에 중복되지 않습니다.
tstew

@ user2202326 죄송합니다. 해당 스레드의 IDE와 다른 언어로 응답하는 사람들이 더 많다는 생각이 들었지만 분명히 틀 렸습니다. 계속하십시오.
apnorton

C #에 익숙하다면 Netduino를 살펴볼 수 있습니다 (Visual Studio를 사용하는 방법이지만 C # 코드를 컴파일하는 다른 방법이 있습니다). 나는 당신이 가지고있는 보드와 호환되는지 모르겠습니다. netduino.com
Jason Down

답변:


5

일반적으로 알려진 것들 :

이론적으로는 다른 언어를 지원하기 위해 avr-gcc를 확장 할 수 있어야하지만 이는 작은 일이 아닙니다. 또한 C 이외의 언어에 대한 지원에는 일반적으로 언어 구성 요소에 대한 약간의 제한이 있습니다. 예를 들어 C ++의 경우에도 메모리 공간과주기에서 새 객체를 인스턴스화 malloc하고 free비용이 많이 드는 것은 권장하지 않습니다 .

Google을 사용하는 것 외에도 다음 참조가 적용 됩니다. 여기를 클릭하십시오.


8

이론적으로 AVR 어셈블리를 출력하는 모든 컴파일러를 사용할 수 있습니다 (코드 크기, 램 사용량 등에 대한 모듈 제한).

AVR 백엔드는 LLVMGCC 모두에 존재 하므로 이론적으로는 약간의 노력으로 LLVM과 GCC의 프론트 엔드에서 지원되는 대부분의 언어를 AVR로 컴파일 할 수 있습니다. 큰 문제는 도서관 지원 등입니다.

결코 적지 않습니다. 여기 질문의 문자가 아닌 질문의 정신에 대한 몇 가지 이상한 선택이 있습니다 [1].

  • AMForth 에서는 네 번째 방언을 Arduino에 플래시 할 수 있습니다.
  • AVR-Ada : AVR 마이크로 컨트롤러 용 Ada .
  • 기본 : Goto를 다시 가져와!

아, 그리고 당신은 원시 AVR 어셈블리를 작성할 수 있습니다 !

[1]-나는 이것을 시도하지 않았습니다!


2

Javascript node.js 기반 시스템 에서 작업하는 사람들도 있습니다. 공개적으로 이미 사용할 수있는 하나는 Espruino 다른입니다 Tessel 하는 발사 봄 2014 년.


1

avr-g ++는 모든 표준 C / C ++ 구문을 지원해야하므로 인라인 어셈블리를 코딩 할 수 있습니다. arduino.cc 포럼 스레드 에 대한 추가 정보


인라인 어셈블리는 C / C ++ 표준의 일부가 아니지만 gcc 및 Microsoft c 컴파일러는 호환되지 않지만이를 지원합니다.
tbodt

avr_gcc도 마찬가지입니다.
Faux_Clef

어쨌든 16 진수로 실행 코드를 작성하는 것보다 좋은 것은 없습니다.
Faux_Clef 2016 년

1

아무도 AVR 어셈블리 를 언급하지 않은 것에 놀랐습니다 !

어셈블리는 종종 가장 흥미 롭거나 쉬운 프로그래밍 방법으로 생각되지 않지만 그럼에도 불구하고 모든 AVR 기반 아두 이노에서 100 % 가능합니다. SAM 보드는 이러한 특징으로 작동하지 않을 수 있지만 프로그래밍에서 어셈블리를 계속 사용할 수 있습니다.

모든 Arduino 보드 (포스팅 기준) 는 Atmel 기반 칩용 SDK 인 Atmel Studio 를 통한 어셈블리 프로그래밍을 지원 합니다.

어셈블리는 모든 Atmel 장치에서 기본적으로 지원되며 작동하기 위해 부팅 로더가 필요하지 않으므로 모든 프로그램이 기본적으로 실시간입니다.


2
어셈블리는 Arduino IDE 설치에 포함 된 gcc 툴체인에서도 지원됩니다.
Edgar Bonet 2016 년

@EdgarBonet Correct, 이것이 __asm__("Assembly code here")스케치에 인라인 어셈블리를 추가 하는 이유 입니다. 그러나 대부분의 프로그램에서는이 방법으로 플랫폼 독립성을 달성하기가 어렵 기 때문에 이것은 나쁜 생각입니다.
tuskiomi 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.