 네, 안녕하세요. 이번 편에서 이야기할 내용은 STM-3E 큐브에 관련된 내용인데요. 그 중에서 큐브에 포함되어 있는 Firmware 패키지에 대해서 살펴보도록 하겠습니다. 본론에 들어가기 앞서 이 Firmware를 사용하여 코드를 생성해주는 STM-3E 큐브라는 개발 도구에 대해 간략히 살펴보도록 하겠습니다. STM-3E 큐브는 STM-3E MCU 시리즈를 개발할 때 쉽고 빠르게 시작할 수 있도록 ST에서 무료로 제공하는 개발 도구인데요. 이 개발 환경은 크게 두 가지 요소로 구성되어 있습니다. 첫 번째로, 그래픽 유저 인터페이스인 큐브 MX와 두 번째로 본편에서 다루도록 할 Firmware 패키지로 이루어져 있습니다. 먼저 큐브 MX는 사용자 친화적인 인터페이스를 제공하여 누구나 손쉽게 STM-3E의 시스템과 주변 장치들을 설정할 수 있고, 나가서 설정하는 내용의 코드까지 생성할 수 있도록 도와주는 도구인데요. 이 큐브 MX가 코드를 생성할 때 필요한 각종 드라이버 및 위소스들이 바로 큐브 Firmware 패키지입니다. 그럼 본론으로 들어가 이 Firmware 패키지에 대해 자세히 살펴보도록 하겠습니다. 큐브의 Firmware 패키지는 MCU 개발에 필요한 모든 소프트웨어 구성 요소들의 집합이라고 할 수 있고요. 화면에 도표 같은 구조로 되어 있습니다. 그 구조를 살펴보면 STM-3E 디바이스들 간의 원활한 이식성을 고려해서 설계된 HAL 레이어가 있고요. 그 위로 USB, RTOS, TCP IP 등과 같은 미드웨어와 이들을 활용해서 만든 다양한 예제 프로젝트들로 구성되어 있습니다. 자 그럼 지금부터 실제 웹에서 패키지를 다운로드 해보고 예제 프로젝트 중에 하나를 빌드해서 실제 동작까지 함께 확인해 보도록 하겠습니다. 큐브 Firmware 패키지는 웹에서 무료로 다운받으실 수 있는데요. 주소창에 www.st.com.st3e 큐브 라고 입력하시면 해당 페이지로 이동하실 수 있습니다. 여기에서 스크로를 내려보시면 관련 툴 및 소프트웨어 부분이 나오고요. 화면에 보이는 것과 같이 STM-3E 각 시리즈별로 Firmware 패키지를 다운받으실 수 있습니다. 이 중에서 STM-3E F4 디바이스용 패키지를 다운받아 보도록 하겠습니다. 해당 링크를 클릭해서 다운로드 페이지로 이동합니다. 여기서 스크로를 내려보시면 우측 하단에 다운로드 버튼이 있고요. 이 버튼을 눌러서 다운로드를 진행하시면 되겠습니다. 다운로드 대의 납축 파일을 풀어보시면 화면에 보시는 것과 같은 폴더 구조로 되어 있는데요. 이 폴더 구조에 대해 설명드리도록 하겠습니다. 큐브 Firmware 패키지는 BSP 및 할 드라이버를 담고 있는 드라이버라는 폴더와 USB, RTS, TCP, IP 등을 담고 있는 미들웨어 폴더, 그리고 드라이버와 미들웨어를 활용한 예제들을 담고 있는 프로젝트 폴더가 있고요. 마지막으로 각종 리소스트를 담고 있는 유틸리티 폴더가 있습니다. 이 중에서 예제들을 담고 있는 프로젝트 폴더의 구성을 좀 더 자세히 살펴보고 그 중에 하나를 실제 빌드에서 보드상에 동작시켜 보도록 하겠습니다. 프로젝트 폴더는 각 개발부대에 맞게 설정된 예제들을 보시는 것처럼 어플리케이션, 데모스트레이션, 이그샘플, 템플릿이라는 이름으로 구분하고 있습니다. 그리고 각 개발부대에 대해 동일한 구성으로 되어 있으며 ST에서 판매하는 대부분의 개발보더들을 지원하고 있습니다. 앞에서 말씀드린 각각의 폴더들은 해당 보대에서 동작하는 예제 프로젝트들을 담고 있는데요. 먼저 이그샘플 폴더는 큐브 할 드라이벌 이용한 다양한 페리폴럴 구동 예제들을 담고 있습니다. 다음으로 어플리케이션 폴더는 USB, Ethernet, RTOS 등과 같은 미들웨어를 사용한 예제들을 담고 있고요. 그리고 데모스트레이션 폴더에서는 할, USB, 미들웨어를 모두 활용하여 복합적인 기능으로 동작하는 예제들을 보실 수 있습니다. 마지막으로 템플릿 폴더는 기초 시스템 설정만을 제공하는 간단한 프로젝트로 사용자가 프로젝트 설정을 구성하는 데에 필요한 시간을 줄여주기 때문에 빠르게 유저 어플리케이션 작성을 시작할 수 있습니다. 자, 그럼 지금부터 프로젝트 폴더 있는 예제 프로젝트 중 하나를 빌드해서 실제 보드에서 구동해 보는 것까지 함께 해 보도록 하겠습니다. 여기서 제가 사용할 보드는 화면 우측에 보이시는 F4 Discovery 보드입니다. 앞에서 다음받은 파일을 풀어보시면 F4 디바이스용 큐브 펌웨어 패키지가 나오고요. 들어가 보시면 드라이버, 미들웨어, 프로젝트, 유틸리티 등 앞에서 말씀드린 폴더 구조를 확인하실 수 있습니다. 이 중에서 예제 프로젝트들이 있는 프로젝트 폴더로 들어가서 F4 Discovery 폴더로 들어가 보도록 하겠습니다. 이 중에서 데몬스트레이션 폴더에 있는 프로젝트를 한번 빌드해 보도록 하겠습니다. 폴더안을 보시면 각종 컴파일러용 프로젝트 파일을 담고 있는 폴더들과 실제 예제 소스들을 담고 있는 Include 폴더와 Source 폴더를 확인하실 수 있습니다. 여기서는 IEL사에 EW ARM 컴파일러를 이용하여 한번 빌드해 보도록 하겠습니다. 프로젝트를 더블 클릭해서 실행하시면 보이시는 것처럼 해당 컴파일러가 실행되고요. 프로젝트 탭에서 Make를 눌러서 빌드하시면 되겠습니다. 빌드가 완료되면 이제 고드에 다운로드 해 보도록 하겠습니다. 다시 프로젝트 탭에서 Download and Debug를 클릭하시면 다운로드가 진행되시고요. 화면 상단의 단주키를 사용할 수도 있습니다. 다운로드가 완료되고 검은색 리셋 버튼을 눌러서 데모를 초기해 보면 MEMS 가속도 센서 주변에 있는 4개 LED가 순차적으로 전멸하고 파란색 유저 버튼을 눌러 보면 보드에 있는 가속도 센서가 활성화되서 특정 방향의 LED가 보드의 기울기나 움직임에 따라 전멸하는 모습을 보실 수 있습니다. 그 다음으로 USB 케이블로 PC와 연결을 볼 건데요. 마이크로 USB 타입의 케이블을 준비해서 연결해 보면 하단의 PC 스크린에서 보이는 것처럼 보드가 일반 마우스로 인식되어 동작하게 됩니다. 그리고 커서가 보드의 움직임에 따라 움직이는 모습을 확인하실 수 있습니다. 지금까지 큐브 소프트웨어 라이브러리의 구성에 대해 알아보고 데모 영상까지 함께 보았는데요. 큐브 포메어 패키지는 큐브 MX와 연동하여 쉽고 빠르게 S1032MCU를 개발할 수 있게 도와주고 앞에서 보신 바와 같이 IAR, K1 등 상용 컴파일러부터 GCC 기반의 무료 컴파일러까지 다양한 개발 환경을 지원하고 있습니다. 뿐만 아니라 보드에서 바로 동작을 확인할 수 있는 유용한 예제 및 데모 프로젝트를 제공하고 있어서 이를 다양하게 활용할 수 있겠습니다. 더 자세한 내용은 홈페이지를 통해 확인하실 수 있습니다. 감사합니다.