펌웨어 시작하기
펌웨어 라고 하면 흔히 c 언어를 이용한 프로그래밍 언어라는 정의를 뜻함.
가장 먼저 배운 c언어로 text 표기하기부터 간단한 수학 방정식을 배우고 0과 1로 이루어진 2진법과 2진법의 무궁무진한 응용 방법을 배우면서 펌웨어의 기초를 닦아간다.
2006년의 경우, 아두이노가 세상에 나오기전에는 atmega 128 이 대학생, 제조업의 basic 으로 싸고, 직관적이며, 접근성이 높은 chip으로 가장 많이 사용되었다.
아두이노가 세상에 나오면서, c 언어 작성이 보다 편리해졌고 간편해졌으며, 접근성이 높아졌다는 것에는 대부분의 펌웨어 개발자들이 동의 하고 있다고 본다.
다만 장점이자 단점으로는 수학, 물리학, 화학에도 그러하듯이 '공식'을 사용한 언어이다 보니 응용성이 상대적으로 떨어진다.
현대 수학에는 많은 공식을 사용하기 때문에 계산의 속도가 빨라지지만 근본이자 이해의 영역에서는 다소 떨어진다.
쉽게 말하자면 더하기,빼기 를 배우고 곱하기, 나누기를 배우지만 아두이노에서는 곱하기, 빼기,곱하기,나누기를 동시에 배우기 때문에 이해의 영역에서는 다소 부족하다.
이러한 이야기를 하는 이유는, 보다 전문적으로 활용되는 STM32로 펌웨어를 시작하기 위해서는 C 의 많은 부분을 이해하고 접근해야하기 때문이다.
아두이노가 대학 수업이라면, atmega128를 다우는건 석사 수준 정도의 레벨이라고 생각된다.
그럼 STM32는 무엇일까? 박사급 수업으로, 보다 집중적으로 깊게 접근한다고 생각한다.
아무튼 초보자의 영역에서는 아두이노만 사용하여도 펌웨어가 어떤지 이해하는 것이고, atmega는 보다 상업적으로 접근하기 좋다. 그럼 STM32는 ? 펌웨어의 본격적인 실력을 쌓기 위해서 접근하는게 좋다
물론 오로지 비유일 뿐이고, 근본은 레고로 표현한다.
기본적으로 레고로 블럭을 쌓아 작품을 완성하는 것으로 STM32은 한 몇십만원 하는 몇시간 이상걸리는 아름다운 레고 작품이지 않을까? 라고 생각된다.
STM32를 이용해서 글을 작성하는 이유는 펌웨어 개발자로 직업, 즉 전문 개발자로 하기위한 범용성이 높기 때문이다.