C를 배우고 MSP430 또는 ARM Cortex와 같은 저렴한 마이크로 컨트롤러 개발 보드를 얻고 최소한 C 프로그램을 작성하고로드하십시오.
컴퓨터 과학 학위와 소프트웨어 개발 배경, 주로 게임용 C ++ 프로그래밍, 이제 iOS 게임 및 앱이 있지만 마지막 작업은 ARM Cortex M3 시스템 용 펌웨어 프로그래밍을 시작한 세미 프로 EE 공연이었습니다. 그런 다음 기본 회로 설계 및 보드 레이아웃을 수행하고 몇 가지 간단한 보드를 설계하는 방법을 배우게되었습니다. 그래서 기본적으로 하드웨어 / 소프트웨어 디자인을 양 끝을 담당하는 사람으로 브리징하기 위해 최고의 프로그래밍 언어를 사용하는 문제에 직면했습니다.
C는 반드시 알아야 할 언어입니다. C ++로 프로그래밍하는 사람들이 쉽게 사용할 수 있으며 실제로 "같은 것"이라고 말하는 C의 기능으로 제한 할 필요는 없지만 그렇지 않습니다. 특히 C ++이 기능을 발전시키고 수집 한 방식과 주류 C ++ 프로그래머가 이러한 기능을 사용하는 방식은 C ++ 애플리케이션과 달리 합리적으로 큰 C 애플리케이션에서 작동하는 방식과는 매우 다릅니다. 펌웨어 SDK는 많은 C 라이브러리가 될 것이며 MCU에 적합한 다른 것은 C 라이브러리가 될 것이며 MCU에 적합한 OS는 C 등으로 작성 될 것입니다.
즉, 많은 MCU 툴체인이 GCC를 컴파일러로 사용하기 때문에 괜찮은 MCU 제품군을 사용하는 경우 C ++ 컴파일러를 사용할 수 있습니다. 그러나 사용하는 기능, 특히 표준 라이브러리의 항목에 대해서는 매우 조심해야합니다. 장치에 너무 큰 바이너리를 만드는 것은 매우 쉽습니다. 임베디드 장치에서 C ++을 사용하기 위해 좋은 사례가 있다고 생각합니다 .C ++에는 크기 나 속도에 영향을 미치지 않는 몇 가지 멋진 기능이 있습니다. 현재 수행중인 작업을 알고 코드를 작성해야합니다. 영리한 기능 사용 측면에서 스펙트럼의 STL 끝보다 스펙트럼의 C 스타일 끝에서 더 나아가 야합니다.
올바른 임베디드 인터프리터가있는 MCU에서 Lua 또는 Python을 사용할 수 있다고 말하는 사람들에게는 너무주의를 기울이지 마십시오. 사실, 나는 그것을 해냈고 재미 있지만, 현재는 Hack a Day에 나오는 장난감 프로젝트와 물건에 더 가깝습니다. 무어의 법칙이 가장 작은 프로세서에도 끊임없이 적용됨에 따라 더 많은 것을 보게 될 것이라고 생각합니다. 이것은 많은 어셈블리가 있었던 게임에서 발생했으며 C와 C ++로 더 오래 지속되었습니다. 다른 모든 사람들보다 훨씬 빠르며 이제는 모든 것이 매우 빠르며 개발자 생산성이 매우 중요하므로 임베디드 고급 언어 또는 고급 언어로 많은 개발이 이루어집니다. 그럼에도 불구하고 파이썬과 루아 배경을 가진 펌웨어 프로그래머를 고용하는 회사를보기까지 몇 년이 걸릴 것입니다.
조립에 너무 많은 시간을 소비하지 마십시오. 개념에 익숙한 것은 나쁘지 않지만, 어셈블리 프로그래밍이라면 많은 일을 할 것 같지 않습니다. 게임에 대한 이러한 기존의 지혜와 마찬가지로 "알아두기"좋은 어셈블리라는 말이 있습니다. 종종 해당 분야에서 일하지 않는 사람들에 의해 반복되는 경우가 많습니다. 그러나 실제로는 어셈블리를 전혀 작성하지 않을 가능성이 거의 없으며, 그렇게하면 최적화를위한 몇 줄이거 나 API가없는 하드웨어가있는 것일 수 있습니다 (그러나 어셈블리 몇 줄을 감싼 줄을 쓴 후). 나는 여러 게임을 해왔으며 보드 / 펌웨어 디자인 프로젝트와 상업 프로젝트를 위해 작성한 총 어셈블리 수는 10 대 미만일 것이다. 그것'