Tiny OS & NesC 2008-04-02, NesC Part2..

Slides:



Advertisements
Similar presentations
경영학과 이은지 경영학과 윤혜리 경영학과 이지은 경영학과 유승연 경영 성공사례 분석.
Advertisements

컴퓨터정보공학부 서재석 컴퓨터정보공학부 안상원 컴퓨터정보공학부 이동현 May Weather THE WORLD’S FAVOURITE NEWSPAPER - Since 1879.
컴퓨터와 인터넷.
패러럴 포트를 이용한 Text LCD 제어 6월 17일 허정수 나선웅.
1636 쇼핑몰.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
TinyOS Tutorial Lesson 3 : Introducing Tasks for Application Data Processing (Hanback’s zigbeX & TinyOS ver.1.1.7) 3번째 시간입니다. Lesson 2는 생략하고 건너 뛰었습니다.
4강. Servlet 맛보기 Servlet 문서 작성 하기 web.xml에 서블릿 맵핑 어노테이션을 이용한 서블릿 맵핑
Ubiquitous Computing Practice - Part I (Introduction, NesC) -
2015년 하반기 소방교육 자 유 전 공 학 부 (금) 안녕하십니까 자유전공학부 행정실 입니다.
Web Service Computing and Practice_
제 9 장 구조체와 공용체.
시스템집적반도체 설계 검증 환경과 기법 Ch 7.
서울 메트로 노조파업 수강과목 : 노사 관계론 담당교수 : 정형진 교수님
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
Ubiquitous Computing Practice - Part I (Introduction, NesC) -
07. 디바이스 드라이버의 초기화와 종료 김진홍
Capstone-Design : IoTeam Introduction Abstract
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
Error Detection and Correction
부트로더와 Self Programming
Contents 1. 설계주제 2. 시연시나리오 3. Output 4. Design 5. Required items
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
4. LAN의 배선체계 (3장. LAN: Local Area Network)
10장. 예외처리.
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
CHAP 12. 리소스와 보안.
3강. JSP 맛보기 JSP 문서 작성 하기 JSP 아키텍처 Lecturer Kim Myoung-Ho Nickname 블스
Method & library.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
Chap 6.Assembler 유건우.
TinyOS Tutorial Network lab. 김인태
인터넷응용프로그래밍 JavaScript(Intro).
30강 JAVA 그래픽 JAVA GUI(Graphic User Interface)란? AWT 컴포넌트? Swing 컴포넌트?
GUI 소켓 애플리케이션 Chapter 08. * 학습목표 윈도우 GUI 애플리케이션의 구조와 동작 원리를 이해
Go Lang 리뷰 이동은.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
MVC 모델을 이용한 웹 애플리케이션 작성 웹 애플리케이션 개발 순서를 알아본다 웹 애플리케이션의 실행 순서를 이해한다.
Lesson 2. 기본 데이터형.
Lab 1 Guide: 교재 2장 DrawX ( 쪽)
임베디드 시스템 개론 임베디드 타겟 보드 포팅 및 H/W 제어 3일차 강의 자료 Embedded System Lab.
Ubiquitous Computing Practice - Part 2(LED 제어) -
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Tiny OS와 NesC Tiny OS Part1. Won Mi Sun – 17 지능제어 연구실.
패러럴 포트를 이용한 Text LCD 제어 6월 17일 허정수 나선웅.
자바 5.0 프로그래밍.
자바 가상 머신 프로그래밍 Chap 10. 자바 컴파일링의 안쪽 ② Pslab 오민경.
ARM Development Suite v1.2
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
Mariadb JDBC PROGRAMMING2
Fucntion 요약.
치료 레크레이션 프로그램 (지적 장애 대상) 과 목: 학 과: 학 번: 이 름: 제 출 일 자 담 당 교 수:
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
웹(WWW).
PART 1 앱 인벤터 프로젝트 12 원격 로봇. PART 1 앱 인벤터 프로젝트 12 원격 로봇.
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
창의 설계 가이드 (모터 프로그래밍 및 테스트)
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
셀프 프로그래밍으로 쓰기 셀프 프로그래밍이란? 프린트포트의 ISP 모듈을 사용하지 않음 부트로더에 의한 펌웨어 다운로드
농구 로봇 따라해 보기.
TVM ver 최종보고서
3.2 분기 명령어.
9 브라우저 객체 모델.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
06. 디바이스의 등록과 해제 김진홍
Web.
BoardGame 보드게임 따라가기.
20 XMLHttpRequest.
Presentation transcript:

Tiny OS & NesC 2008-04-02, NesC Part2.

Contents 1 NesC 구성 2 네이밍 법칙

Hot Tip NesC Network Embedded System C C에 비해 편리함 원하는 Component만 연결해 주면 원하는 프로그램 작성 매우 작음 No Dynamic Memory

Hot Tip Component Application 하나 이상의 컴포넌트로 구성되어 컴포넌트 사이에 와이어로 연결된 실행 가능한 프로그램 Component Wire, Interface를 이용하여 다른 Component를 연결된 형태와 동작을 기술하며, Component의 수행, 메시지 수신 시 처리사항 등을 기술한 항목 NesC를 구성하는 기본 블럭 Module Configuration

Configuration Module 컴포넌트의 연결을 나타냄 하나의 새로운 Component를 정의 Interface의 동작을 기술 이벤트 핸들러 작성 새로운 Component의 동작 및 다른 Component들과의 연동을 실제로 구현

Comp3 Comp1: module Comp4 Comp2: Application configuration

Interface Component를 연결하는 포트의 역할을 수행 제공자와 사용자 형태로 컴포넌트에서 선언 (TinyOS-1.X) Command와 Event타입의 함수로 정의 Command Event

interface identifier{ command result_t function_name prototype event result_t function_name prototype } interface가 제공하는 함수 이름 component 이름

Command 현 컴포넌트의 module 부분에 구현된 함수로서, 현 컴포넌트를 사용하는 상위 컴포넌트에서 ‘signal’명령을 통해 호출 Event 현 컴포넌트를 사용하는 상위 컴포넌트에 구현되어야 하는 함수로서, 특정 인터럽트나 조건이 만족되었을 경우, 현 컴포넌트가 어떤 정보를 상위 컴포넌트에게 전달할 때 사용

Component configuration configuration identifier { provides{ interface interface_name1 } implementation { components idetifierM, com, com2.. interface_name1 = identifierM.interface_name1 identifierM.interface_name2 -> com1.inteface_mane3 com1.interface_name3 <- identifierM.interface_name2

Wiring component사이의 연결 종류 -> , <- , - ex1> interface1 = interface2 2개의 인터페이스가 같음을 의미 ex2> interface1 -> interface2 interface의 구성 함수가 링크되었음 ex3> interface1 <- interface2 = interface2 -> interface1과 동일

Naming Conventions 식별자 타입 네이밍 법칙 예시 Interface Component Files adc sendmsg Component Components는 명사로 이루어지고, 두단어로 이루어질 경우, 내부 단청의 첫 글자는 대문자이어야함 C가 붙은것은 Configuration, m이 붙는 것은 module를 의미 timerc timerm Files 파일이름은 확장자 .NC를 가지는 이름이어야 함 timerc.nc timerm.mc applications TINYOS코드의 테스트용 어플리케이션은 첫이름을 “TEST”로 함 TINYOS 하드웨어의 테스트용 어플리케이션은 첫이름은 “VERIFY”로 함 증명을 위한 어플리케이션은 첫 이름을 “DEMO”로 함 demotracking testtinyalloc verifymicahw

Naming Conventions 식별자 타입 네이밍 법칙 예시 Commands, Events and Tasks Commands Events그리고 Tasks의 이름은 동사로 이루어짐. 두 단어로 이루어질 경우, 내부단어의 첫 글자는 대문자, 천체 이름의 첫 글자는 소문자로 이루어짐 Command/Event 쌍의 형태는 “Done”이 나 “Complete”와 같은 명령어 형태의 접미어가 붙음 하드웨어를 직접 접근하는 Commands는 “TOSH_”라는 접두어를 가짐 sendMsg output outputComplete put putDone fired TOSH_SET_RED_LED_PIN(); Variables 변수는 명사로 이루어짐, 변수가 두 단어 이상으로 이루어질 경우, 내부 단어의 첫 글자는 대문자. 전체 이름의 첫글자는 소문자 bool state uint16_t lastConut uint16_t counter uint8_t noHeader Constants 상수는 모두 대문자. 범위를 정하는 내부 단어를 Underber(_)로 이어서 사용 TOS_UART_ADDR TOS_BCAST_ADDR

NesC Keyword Keyword 의 미 provides 의 미 provides 다른 component에게 제공하거나 다른 component간의 연결을 위한 Interface의미 uses Interface로 연결된 component 중 event를 실행하는 곳을 나타냄. 즉, component를 사용 하는 것을 의미 atomic Race Condition이 발생하지 않도록 사용. atomic으로 감싸여진 코드는 non-preemptive task 아규먼트를 가지지 않는 함수, 작업 대기 큐에 넣기 위한 함수를 만들기 위해 함수 앞에 붙여줌 post Task함수를 작업 대기큐에 저장하기 위해 사용 call 일반적인 함수호출 할 때 사용 async 비동기적으로 작동하며 하드웨어 인터럽트가 생기면 응답 as Interface에 붙여주는 일종의 별명, 또는 별칭을 만들어주기 위해 사용

Thank You! www.themegallery.com