경고, 긴 설명이 곧 나옵니다. 나는 당신이 가지고 있다고 생각하는 몇 가지 오해를 지우고 싶습니다.
Arduino는 실제로 두 가지입니다.
- avr-gcc로 컴파일 된 C / C ++ 라이브러리 모음
- 공장에서 이전에 칩에 프로그래밍 된 소형 부트 로더 펌웨어 프로그램.
예, Arduino IDE는 기본적으로 AVR C 컴파일러 인 avr-gcc를 래핑합니다. 프로젝트 또는 "스케치"는 언급 된 Arduino 라이브러리를 통합하며 avr-gcc로 컴파일됩니다. 그러나이 중 아무것도 보드에 글을 쓰는 방법과 관련이 없습니다. 이러한 스케치를 배포하는 방법은 평소와 약간 다릅니다.
Arduino IDE는 보드의 usb-to-serial 칩을 통해 Arduino와 통신하고 부트 로더가 이해할 수있는 프로그래밍 모드를 초기화하고 부트 로더가 알려진 위치에 배치 한 다음 실행하는 칩에 새 프로그램을 보냅니다. . "실제 쓰기를 수행하는 avr 라이브러리"는 없습니다. Arduino IDE가 직렬 포트를 열고 부트 로더와 대화하는 것뿐입니다. 이것은 런타임 동안 디버그 메시지가 IDE로 인쇄되는 방식입니다.
대체 IDE는 부트 로더와 동일한 직렬 통신을 수행 할 수 있어야합니다. Arduino는 이미 제공하는 모든 라이브러리와 IDE에서 원터치 프로그램 실행 및 실행으로 인해 쉽습니다. 솔직히 말해서 더 쉬워 지거나 사용자에게 친숙하다고 생각하지 않습니다. 그들은 AVR 마이크로 컨트롤러와 건물 / 배치 프로세스의 모든 세부 사항을 추상화했습니다.
대안은 avr-studio (컴파일러에 avr-gcc를 사용함) 및 ICSP 프로그래머 (추가 하드웨어로 구매해야 함)와 같은 것입니다. 일부 레지스터 정의 헤더 파일과 유용한 매크로 이외의 많은 기능이 제공되지 않습니다. 또한 AVR 칩에는 빈 슬레이트 인 부트 로더가 제공되지 않습니다. 마이크로 컨트롤러와 관련하여 무엇이든 깊이있게 가서 하드웨어 주변 장치 및 레지스터에 대해 배우고 C에서 바이트를 이동해야합니다. 디버그 메시지를 PC로 다시 인쇄 하시겠습니까? print ()에 대한 UART 루틴을 먼저 작성하고 컴퓨터에서 터미널을여십시오.
이보다 한 단계 낮은 것은 텍스트 편집기에서 코드를 작성하고 Makefile 또는 명령 줄에서 avr-gcc 및 avr-dude (프로그래밍 명령 줄 도구)를 호출하는 것입니다.
그보다 한 단계 낮아지면 텍스트 편집기에서 어셈블리를 작성하고 avr-assembler 및 avr-dude를 호출합니다.
나는 내가 어디로 가고 있는지 잘 모르겠다. 기존의 IDE와 Arduino가 초보자에게는 절대적으로 천재적이며 완벽하다고 생각합니다. 명예에 대한 주장 은 사용자 친화적입니다. 찾고있는 답변이 아니라 워크 플로를 배우고 멋진 것을 만들어보십시오.