W7500 mbed porting Guide ( 1/6 )

2015. 10. 8. 14:582018년 이전 관심사/mbed

반응형

W7500 mbed porting Guide

현재 회사에서 W7500 Peripheral Library Firmware 구현과 mbed에 등록하기 위한 Porting 작없을 진행하고 있다.
본 포스팅에서는 W7500을 mbed에 등록하기 위한 Porting 작업을 진행하는 방법과 기술적인 이슈들을 정리 한다.

mbed SDK Porting 개요

mbed Porting의 궁극적인 목적은 mbed에서 제공하는 아래와 같은 코드를 W7500에서 동작 할 수 있도록 Interface Code를 구현하는 것이다.

#include "mbed.h"

////MBED Example 1 LED CONTROL AND Serial Output
int main()
{
    Serial pc(USBTX, USBRX);
    DigitalOut myled(LED1);

    pc.baud(115200);
    pc.printf("TEST Start\r\n");

    myled = 0;
    while(1){
        pc.printf("LED ON\r\n");
        myled = 1; // LED is ON
        wait(1); // 1 sec
        pc.printf("LED OFF\r\n");
        myled = 0; // LED is OFF
        wait(1); // 1 sec
    }
}

mbed SDK Porting을 위한 코드 및 자세한 정보는 아래 주소에서 얻을 수 있다.
http://developer.mbed.org/handbook/mbed-SDK-porting

mbed SDK 폴더 구조

mbed SDK의 폴더 구조는 크게 api, common, hal, targets 으로 구분 된다. 각 폴더에 대한 간략한 설명은 아래와 같다.

api

api 폴더에는 아래 그림과 같은 파일들이 존재 하며, 각 파일들은 User가 Application을 구현 할 때 필요한 API 들의 프로토타입들이 존재 한다.

선택 영역_017.png

common

api 폴더에서 선언한 프로토타입들을 구현한 파일들이 존재 한다.
common 폴더의 구현부에서 Chip에 종속적인 함수들을 호출 할 때는 Hal 폴더에 정의된 함수들을 이용한다.

선택 영역_018.png

hal

Chip에 종속적인 기능을 사용 하기 위한 Interface API들의 프로토타입들이 존재 하며, common 폴더의 함수들은 hal에 정의되어 있는 함수들을 이용하여 Chip에 종속적인 기능을 이용한다.

선택 영역_019.png

targets

targets 폴더는 cmsis와 hal로 나뉜다.

targets/cmsis

targets/cmsis는 chip을 구동하기 위해 필요한 startup code와 linker script 들이 존재 하며, verdor에 따라서는 Chip을 제어하기 위한 Library Code 들을 보관 한다.

선택 영역_024.png

targets/hal

hal 폴더에서 정의한 프로토타입들의 실제 구현 코드들을 보관하며, common 폴더의 함수들이 Chip에 종속적인 기능을 사용하기 위해서는 targets/hal 폴더에 정의된 함수들을 호출한다.

선택 영역_026.png

반응형

'2018년 이전 관심사 > mbed' 카테고리의 다른 글

W7500 mbed porting Guide ( 3/6 )  (0) 2015.10.08
W7500 mbed porting Guide ( 2/6 )  (0) 2015.10.08
mbed rpc interfacing with Python  (0) 2015.10.08
mbed RPC Library porting guide for WIZwiki-W7500  (0) 2015.10.08
mbed RPC  (0) 2015.10.08