arduinoOTA 라이브러리로 플래시 된 일부 nodeMCU 장치를 프로그래밍하기 위해 웹 앱을 개발 중입니다.
http://esp8266.github.io/Arduino/versions/2.0.0/doc/ota_updates/ota_updates.html
예제를 시도했고 Arduino IDE에서 컴파일 된 바이너리 파일의 OTA 업로드가 작동합니다.
내 웹 앱에서 사용자가 Sketch에서 코딩 할 수 있다고 가정 해 보겠습니다. Sketch 코드를 bin 파일로 컴파일 할 수있는 오픈 소스 서버 측 또는 클라이언트 측 컴파일러가 있습니까?
Comments
- Arduino IDE에서 자세한 콘솔 출력을 켜면 컴파일 및 링크를 위해 실행 된 모든 명령이 표시됩니다. 빌더는 외부이며 오픈 소스입니다.
- 예를 들어 Arduino Eclipse 플러그인 인 Sloeber, Arduino IDE없이 Arduino 툴체인 및 핵심 패키지를 사용하는 방법을 참조하십시오.
- @Juraj 이미 존재하는 자습서 등의 URL을 답변으로 작성하거나 제공하십시오. 웹에서 알 수 있습니다.
- AVC GCC가 사용되며 오픈 소스입니다. gcc.gnu.org
답변
Arduino IDE는 외부 도구를 실행하여 hex 또는 bin 파일을 생성합니다. 먼저 프로젝트의 ino 파일은 arduino 빌더 에 의해 cpp 파일로 처리됩니다. 그런 다음 arduino 빌더는 MCU 아키텍처 (컴파일러 및 링커)의 도구 체인을 호출합니다. 예를 들어 328p 또는 2560 용 AVR 도구; SAMD의 ARM 툴체인 Espressif 칩용 xtensa 도구.
새로운 기능은 Arduino CLI 로, 명령 줄로 Arduino를 사용하는 데 중점을 둡니다.
Arduino 빌더, Arduino CLI 및 esp8266 Arduino 코어는 오픈 소스입니다. Extensa 도구와 Espressif SDK는 오픈 소스가 아니지만 무료입니다.
답변
답변
한 번 살펴보세요. 여기에서 https://github.com/arduino/Arduino/wiki/Build-Process 프로세스를 이해합니다.
사실 Arduino 코드는 “C 또는 C ++ “는 100 %입니다. 일부 정보가 누락되어 직접 컴파일 할 수 없습니다. 이것이 IDE로 “컴파일”할 때 임시 폴더에 파일을 복사하고이 파일의 시작 부분에 몇 줄을 추가 한 다음 기본적이고 잘 알려진 avr을 호출하는 이유입니다. -gcc. 전용 서버가있는 경우 OS에 따라 avr-gcc 패키지를 검색하면됩니다. 예 : Debian의 경우 : https://packages.debian.org/stretch/gcc-avr
그런 다음 avr-gcc가 기다리는 코드를 직접 보내거나 코드를 GCC로 보내기 전에 IDE에서 수행하는 것과 동일한 변경 사항을 코드에 적용합니다.
도움이 되길 바랍니다