C ++ 이외의 다른 프로그래밍 언어를 사용하여 Arduino를 프로그래밍 할 수 있습니까? 그렇다면 어떤 프로그래밍 언어입니까? 코드를 컴파일하여 Arduino에로드하려면 어떤 소프트웨어가 필요합니까?
C ++ 이외의 다른 프로그래밍 언어를 사용하여 Arduino를 프로그래밍 할 수 있습니까? 그렇다면 어떤 프로그래밍 언어입니까? 코드를 컴파일하여 Arduino에로드하려면 어떤 소프트웨어가 필요합니까?
답변:
일반적으로 알려진 것들 :
이론적으로는 다른 언어를 지원하기 위해 avr-gcc를 확장 할 수 있어야하지만 이는 작은 일이 아닙니다. 또한 C 이외의 언어에 대한 지원에는 일반적으로 언어 구성 요소에 대한 약간의 제한이 있습니다. 예를 들어 C ++의 경우에도 메모리 공간과주기에서 새 객체를 인스턴스화 malloc
하고 free
비용이 많이 드는 것은 권장하지 않습니다 .
Google을 사용하는 것 외에도 다음 참조가 적용 됩니다. 여기를 클릭하십시오.
이론적으로 AVR 어셈블리를 출력하는 모든 컴파일러를 사용할 수 있습니다 (코드 크기, 램 사용량 등에 대한 모듈 제한).
AVR 백엔드는 LLVM 과 GCC 모두에 존재 하므로 이론적으로는 약간의 노력으로 LLVM과 GCC의 프론트 엔드에서 지원되는 대부분의 언어를 AVR로 컴파일 할 수 있습니다. 큰 문제는 도서관 지원 등입니다.
결코 적지 않습니다. 여기 질문의 문자가 아닌 질문의 정신에 대한 몇 가지 이상한 선택이 있습니다 [1].
아, 그리고 당신은 원시 AVR 어셈블리를 작성할 수 있습니다 !
[1]-나는 이것을 시도하지 않았습니다!
아무도 AVR 어셈블리 를 언급하지 않은 것에 놀랐습니다 !
어셈블리는 종종 가장 흥미 롭거나 쉬운 프로그래밍 방법으로 생각되지 않지만 그럼에도 불구하고 모든 AVR 기반 아두 이노에서 100 % 가능합니다. SAM 보드는 이러한 특징으로 작동하지 않을 수 있지만 프로그래밍에서 어셈블리를 계속 사용할 수 있습니다.
모든 Arduino 보드 (포스팅 기준) 는 Atmel 기반 칩용 SDK 인 Atmel Studio 를 통한 어셈블리 프로그래밍을 지원 합니다.
어셈블리는 모든 Atmel 장치에서 기본적으로 지원되며 작동하기 위해 부팅 로더가 필요하지 않으므로 모든 프로그램이 기본적으로 실시간입니다.
__asm__("Assembly code here")
스케치에 인라인 어셈블리를 추가 하는 이유 입니다. 그러나 대부분의 프로그램에서는이 방법으로 플랫폼 독립성을 달성하기가 어렵 기 때문에 이것은 나쁜 생각입니다.