1 / 13

NesC, an Introduction

NesC, an Introduction. For TinyOS Programming. Shinheon Kim 20090707. Content. NesC 특징과 장점 Component Configuration / Module Provides / Uses Interface Command / Event Summary. TinyOS Compile. 컴파일 과정 Cygwin 에서 make 명령어 사용 NesC 로 구성된 application 을 NesC compile → app.c 가 생성됨

selia
Download Presentation

NesC, an Introduction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. NesC, an Introduction For TinyOS Programming Shinheon Kim 20090707

  2. Content • NesC 특징과 장점 • Component • Configuration / Module • Provides / Uses • Interface • Command / Event • Summary

  3. TinyOS Compile • 컴파일 과정 • Cygwin에서 make 명령어 사용 • NesC로 구성된 application을 NesC compile → app.c가 생성됨 • 이를 C compiler(avr, msp, …)로 컴파일하→ object file(exe, hex, …)가 생성됨. • Serial port를 경로로 하여 Ponyplog 프로그램으로 hex파일 포팅

  4. nesC [nes-si:] • Network Embedded System C Language • Support TinyOS • Make applications for Network Embedded system • No Dynamic memory allocation • Extension of C programming language • Efficient code for micro-controllers • Able to interact with old C code • Many C Programmer • C is little helpful for safe code & structuring applications

  5. nesC 의 장점 • component 사용하여 쉽게 애플리케이션 소프트웨어를 만들어 낼 수 있음 • 컴파일 시 하드웨어 동작 시에 발생할 수 있는 에러를 체크

  6. Component • 조립에 쓰이는 일종의 부품이라는 개념 • interface 키워드를 사용하여 연결 • “*.nc” 파일의 형태로 존재 • module과 configuration 으로 구분 SingleTimer StdControl Main Timer UART StdControl StdControl BlinkM ByteComm LedsC Leds

  7. Configuration • xxx.nc/oooC.nc • 여러 모듈을 서로 연결하여 그룹화 • 외부 component가 사용할 수 있도록 해당 인터페이스를 제공

  8. Module • xxxM.nc • 실제 실행되는 코드인함수가 존재하는 파일 • 여러 개의 함수를 지원 • 인터페이스를 통해 구현

  9. Main.nc App--.nc (Wiring) Interface-1.nc Interface-1.nc Interface-1.nc Component-2M.nc (Code) Component-1.nc (Wiring) Interface-1.nc Interface-2.nc Interface-2.nc Component-3M.nc (Code) Provides / Uses Provides 제공할 커맨드 함수를 정하여 다른 모듈에서 호출하여 사용할 수 있음 Uses 다른 모듈에서 제공하는 커맨드 함수를 호출하여 사용할 수 있음 event 함수를 구현해야 함

  10. Interface • Interface는 Component가 가지고 있는 특성, 각별한 능력 같은 것을 간단히 정리해 놓은 곳. • 무슨 일을 하는지 Proto type을 간단히 정리해 놓은 곳 • Command or event로 구성 • Components간에 내부적으로 연결할 구조물을 제공한다. • 한 Component는 여러 가지 Interface를 사용할 수 있다. • 한 Interface를 여러 곳에서 사용할 수 있다. • Tiny OS는 많은 Interface를 지원한다.

  11. Command / Event • Commands (“call down”) • Should be non-blocking • Return type이 필요하다. → postpone time consuming work by posting a task. • Command로 정의된 함수는 현 Component의 Module 부분에서 구현된 함수. • 현 Component를 사용하는 상위 Component에서 ‘Call’ 명령을 통해 호출된다. • Events (“call up”) • Commands를 호출할 수 있고, 다른 event신호를 보낼 수 있고, tasks를 post할 수 있다. • 하지만 commands에 의해 signal될 수 없다. • Task를 먼저 점유할 수 있다. (우선순위) • 현 Component를 사용하는 상위 Component에 구현되어야 하는 함수. • 현 Component가 어떤 정보를 상위 Component에게 전달할 때 사용된다.

  12. Summary 주요 키워드 Component Configuration Module Provides Uses Interface Command Event Task Post

  13. Summary NesC는 Component를 사용하여 쉽게 소프트웨어를 만들 수 있음 컴포넌트는 여러 컴포넌트를 그룹화하고 인터페이스들을 서로 wiring하는 configuration과 해당 인터페이스를 실제 구현하는 Module 로 나눔 Interface 파일은 Command / Event를 정의하고 있으며,Command 는 인터페이스를 제공하는 컴포넌트에 구현되고,Event 는 인터페이스를 사용하는 컴포넌트에 구현되어야 함 provides 키워드로 인터페이스를 제공하고 다른 쪽 컴포넌트에서는 uses 키워드를 사용하여해당 인터페이스에 정의된 커맨드와 이벤트를 사용함

More Related