2015년 7월 1일 수요일

ARMmbed

mbed_logo

ARM mbed는 아래의 그림처럼 IoT Device Platform을 위하 구성되는 Sillicon, Cloud, Device Partner들의 Communty를 표방한다.
arm_mbed_iot_dppage_-01-1b
Cortex-M을 제공하던 ARM사가 Cortex-M IoT Device Ecosystem을 더욱 확고히 하기위해 Operating System인 mbedOS와
IoT Cloud Server개념의 mbed Deiver Server를 포함하고 있다.
또한 ARM mbed on Site에서 IoT Device의 개발이 이루어 지도록 Web-IDE를 On-Site에서 지원하고 있으며 재발된 코드들의
버젼관리 및 배포를 할 수 있도록 Mecurial기반의 파일 버젼관리 시스템을 연동하고 있습니다. 이러한 Web-IDE를 기반으로 Official 혹은 User Library들이 공유되며 이를 바탕으로 Rapid Protypting이 가능하다.
따라서, 개발자들이 ARM mbed Site에서 IoT Device의 개발부터 IoT Cloud service의 Test를 완료 할 수 있다.

자세한 내용의 아래의 링크를 확인하세요

mbedOS

mbed-os-v2-700x467

  • 기존에는 같은 Cortex M processor를 사용하더라고 Vendor마다 각각 사용하는 방법이 달라 Function적으로는 같은 코드지만, 다른 Vendor의 MCU를 사용할 경우에는 각각의 MCU에 의존적인 부분들을 선별하여 고치는 poring작업들이 개발자들의 괴롭혔다. Fuctionc적으로는 검증되어있지만 MCU바뀌어서 벌어지는 코드 수정에 따른 무한 디버깅이 개발자들을 지치게 하죠. 이러한 문제를 해결하기 위해 Cortex Microcontroler Software Interface Standard가 등장했다.. CMSIS는 Vendor별로 존재하던 Hardware부분을 Hardware abstraction layer이용하여 각각의 다른 Vendor의 MCU를 하나의 Cortex M processor 사용하는 것 처럼 할 수 있게 하였다. 따라서 개발자들은 Hardware변경에 따라 발생하는 문제들을 줄일 수 있고 자기가 개발하려는 Function기능에 더욱 집중할 수 있게 되었다. mbedOS에도 이 CMSIS 기반으로 작성된다. 따라서, mbedOS를 이용함에 있어 Hardware에 따른 수정들이 최소화 하였다.

mbed Device Server

additional_diag-_3mbed_dpage2_d3-01

  • 현재 (2015.07)에는 mbed Device Server는 Beta open으로 partner만이 접근이 가능하다. Xivily, Axeda 와 같은 기존의 Cloud Service업체들의 기능들을 ARM mbed에서 수용하여 IoT Cloud Service의 제공을 준비중이다.

Web IDE

compiler-overview
KEIL와 IAR과 같은 IDE가 Web기반으로 제공되고 있다. 따라서 IDE를 설치하는 과정들이 생략되는 단점이 생긴다. 물론 Web-bwroser를 사용하기 때문에 네트워크 상황에서 또한 Web-IDE Server의 상황에따라 “렉”이 걸릴때가 있다. 이러한 문제는 Web-IDE에서 현재 작업중인 코드를 Export하는 기능을 제공하기 때문에 코드를 프로젝트단위로 Local PC로 다운로드하여 코드 작업을 할 수도있다. 다만, 있때는 자신이 사용하려는 IDE가 Local PC에 구축되어 있어야 한다.

자 여기서 궁금한점은 Remote에 있는 Web-IDE에서 Compile된 Bin파일은 어떻게 Local에 있는 Target Board에 Program시키냐는 것이다. 이문제는 아래의 두 단계에 의해 해결된다.

  • Complie이 성공적일 경우 아래의 경우처럼 Bin파일 형태로 Web-bwroser를 통해 다운받아진다. (왼쪽 밑에부분 다운로드된 Bin파일존재)
    2015-07-01_14-22-11
  • mbed platform들은 Local PC에서 아래의 그림과 같이 드라이브(mbed)로 인식된다. 따라서 다운 받은 Bin파일을 mbed drive에 Copy하면 program은 끝!
    2015-07-01_14-25-18

mbed.org 탐방

  • mbed.org에서 로그인 이후 아래의 그림 오른쪽 상단에 있는 Developer Site를 클릭!
    2015-07-01_14-09-02

  • 아래와 같이 Product까지 개발할 수 있는 Developer Site에 접속했다. 메뉴바를 보면 Platform / Components / Handbook / Cookbook등이 존재한다 하나씩 구경해보자
    2015-07-01_14-09-31

  • Platform
    ARM mbed communy에 공식적으로 등록된 platform을 소개하는 페이이며,
    각각의 platform를 클릭해서 들어가면 Pin map / Schematic / HelloWorld Code(예제코드) / 살수 있는 곳 의 형식으로 Platform에 대한 정보가 답겨 있다.
    2015-07-01_14-10-24

  • Components
    ARM mbed platform에 적용이 가능한 Actuator / Sensor / Communication 등의 module를을 소개하는 페이지 이며,
    각각의 Components 클릭해서 들어가면 Pin map / Schematic / HelloWorld Code(예제코드) / 살수 있는 곳 의 형식으로 Components 대한 정보가 답겨 있다.
    2015-07-01_14-10-36

  • Handbook
    ARM mbed platform을 이용하기 위한 Team mbed에서 official적으로 공개하는 Code / Tutorial이 담겨진 페이지이다.
    아래 그림과 같이 Analog IO제어 부터 Networking에 대한 official material이 제공된다.
    2015-07-01_14-11-12

  • Cookbook
    ARM mbed platform을 이용하는 User각자가 공개하는 Code / Tutorial이 담겨진 페이지이다.
    2015-07-01_14-12-09

  • Code
    ARM mbed community에서 존재하는 Code를 검색할 수 있는 페이지 이다.
    2015-07-01_14-12-28

  • Compiler
    ARM mbed의 Web-IDE이다. 아래와 같이 Program workspace창에서 여러개의 프로젝트를 관리할 수 있다.
    또한 Web-IDE에서 Code editing / 컴파일 / 버젼관리 (commit/publish) / import&export 등의 대표적인 기능을 지원한다.
    2015-07-01_14-13-19