TinyOS 2.0 Overview II

TINYOS 2007. 3. 2. 13:26

4. Booting/Initialization

2.0의 부팅 하는 방법은 1.0과 틀리다. 1.0의 StdControl 은 StdControl, Init로 나뉘었으나 2.0에는 하나 뿐이며 두개의 start, stop 함수만 가지고 있다. 1.0에서는 부팅되며 하드웨어를 켜고 초기화 과정을 했으나 2.0에서는 초기화만 한다. 그리고 하드웨어, 스케줄러등등의 초기화 과정이 끝나면 Boot.boot 이벤트를 발생 시킨다. 어플리케이션에서는 이 이벤트와 start,stop 명령어만 잘 사용하면 될것이다. 부팅에 관한건 TEP107을 참조 하도록

*. 앗.. ~~~!!! 이제 StdControl의 stoop명령어로 Power off이 안되는 것인가 에효 ... 다른걸 궁리 해야 하는군 ㅡ.ㅡ;

5. Virtualization
추상화~~!!!
2.0의 컴포넌트들은 1.0처럼 병렬인터페이스들은 자주 사용하는 것이 아닌 서비스 별로 추상화된 모듈을 많이 사용 한다.

* . 물론 이런 서비스추상화 모듈이 편하긴 하지만 조금만 해보면 좀더 밑으로 가보고 싶을껄 ㅡ.ㅡ;

6. Timers
2.0은 타이머 셋팅에 좀더 많은 옵션을 제공한다. 일단 하드웨어 플랫폼에 따라서 32KHz의 밀리세컨 단위의 타이머는 기본 제공 한다. 그리고 매우 정확한 타이머를 두개 내지 한개 제공 한다.(async 키워드를 사용하는 타이머 물론 모르면 넘어가라. 대충 매우 정확하고 즉시 일들이 일어난다고 생각하면 된다.) 그리고 매우 유용한 기능 타이머 컴포넌트에게 타이머 터질때 까지 얼마나 남았냐고 물어 볼수 있으며, 몇 초 후부터 타이머를 가동해라고 명령 할 수 도 있다.

일단 여기서 보는 예로 2.0에서의 추상화가 1.0과 어떻게 다른지 알수 있다 참조 해라.

1.0에서

components App,TimerC;

App.Timer->TimerC.Timer[unique("Timer")];

2.0에서는

components App, new TimerMilliC();

App.Timer->TimerMilliC;

*뭐여 완전 자바다 이젠 ㅡ.ㅡ;

7. Communication
-일단 많이 바뀌었다 ㅡ.ㅡ;
메세지 구조는 message_t 로 바뀌었고 패킷필드를 직접 참조를 못한다(윽 불편해 ㅡ.ㅡ;)  예로 msg의 목적지 주소에 접근 할려면 ㅡ.ㅡ;; 윽 AMPacket.destination(msg) 를 써야 한단다 ㅡ.ㅡ

send insterface도 구분된다. AMSend interface는 목적지 필요한 인터페이스 이며 , broadcasting 추상화 계층은 Address 없이 사용하는 Send 인터페이스를 써야한다.

그리고 자주 사용 하는 UART_ADDRESS도 못쓴다 대신 따로 있다. SerialActivemessage를 사용 해야 한다.

Active Message(여기서 Active Message는 구조가 아니다.표준 통신 모듈이다.)  시스템은 네개의 추상화 모듈로 구성되며, 큐를 공유 하는 1.0과는 달리 각 센더 컴포넌트 마다 예약된 큐를 따로 가진다.(스케줄러랑 똑같다.) 그리고 각 큐는 동등한 권한을 가진다.(앗 이건 안된다.. 먼저 주고 싶을때도 있을건데.. 음 ㅡ.ㅡ;만들까)

TEP111 은 message_t 에대하여 TEP116은 AM에 대해 나와 있다 참조!!

low power stact 은 CC1000에 대해선 나와 있고 CC2420은 테스트 중이란다.(에효 빨리 해줘 ㅡ.,ㅡ;)

8. Sensors
2.0에서 센서 컴포넌트는 HIL 센서 플랫폼이다. TEP114를 보면 HIL 데이타 획득 인터페이스가 제공 해주는 Read, ReadStream, get이 있으며 그 센서의 제공 능력에 따라 나뉜다.

좀더 정확한 걸 원하면 HAL을 직접 접근 하도록 하라.

9. ERROR_CODE
1.0에서의 반환 값은 result_t 였다 2.0은 error_t로 바뀌었으며 error_t는 SUCCESS,FAIL,EBUSY,ECANCEL의 인자를 가진다.

기존의 1.0 소스

if(call A.b()){
  busy=TRUE;
}

는 다음과 바꿀것을 추천한다.

if(call A.b()==SUCCESS){
busy = TRUE;
}

오늘은 더 할지 안 할지 모르겠다 ㅡ.ㅡ; 빨리 해야쥐 원

, .

TinyOS 2.0 OVERVIEW I

TINYOS 2007. 2. 27. 11:15
1. 소개 요약
-Tiny2.0은 재구성 되었다. TinyOS 1.x가 사용자의 요구 또는 사용에 있어 한계가 보이며 그 한계로 인해 요구사항의 개발이 어려워 졌다.

TinyOS 2.0 과 1.x의 코드는 호완 되지 않으나. 1.x의 코드를 2.0으로 바꾸는데는 그렇게 어렵지도 많은 시간을 필요로 하지도 않을 것이다.(정말 일까 ㅡ.ㅡ; 일단 까라니 까보긴 하자).

이제 Tep란게 생겼단다 알아 두자

*TEP - TinyOS Enhancement Proposals) ㅎㅎ TinyOS 2.0 사이트 가면 여러가지(하드웨어 추상화, 스케줄러, 등등)이 있으니 관심 있음 가서 보자.

2. Platforms/Hardware Abstraction
- 플랫폼 폴더는 tos/platform 이며 하드웨어 추상화를 위한 칩에 대한 정의가 있는 폴더는 tos/chips 폴더 이다.

그리고 하드웨어 추상화 계층은 HPL,HAL, HIL의 세단계로 구성된다.

HPL - 하드웨어 칩에 대한 정의가 되어있음. 파일앞에 Hpl이 붙음

HAL - HPL을 좀더 쉽게 사용하기 위한 레이어 정확히 말하면 HIL에 동일한 인터페이스를 제공 해주기 위한 레이어 파일 이름은 걍 칩이름 으로 명명

HIL - HAL을 사용해 유저가 필요한 인터페이스를 추상화 하여 제공 하는 레이어 즉 플랫폼에 상관 없이 같은 이름의 인터페이스를 제공 해주기 위한 레이어 파일이름은 그 기능에 따름

지원 플랫폼 - eyeIFX v2, intelImote2, mica2, micaz, telosb, tinynode, btnode3

3. Scheduler
TinyOS 1.0 과 2.0의 스케줄러는 비선점 FIFO 방식인건 똑같다. 하지만 약간 차이가 있는게 1.0은 모든 태스크가 공유큐를 공유한것에 비해 2.0은 태스크 마다 큐의 슬롯을 하나 차지 한다.그래서 태스크는 하번에 하나씩 포스팅 할수 있다. 그래서 컴포넌트가 여러번 포스팅 하면 변수를 셋팅하여 태스크가 포스팅 되면 다시 자신을 포스팅 한다.
주의 사항은 이거다 .. 1.0처럼 포스팅이 실패 했다고 다시 포스팅 하지 마라. 알아서 한단다. 조심 해라.. ~~~

그리고 어플리케이션에서 스케줄러 조정도 가능하다. 오~~ 정말 이제 비선점인가 ㅡ.ㅡ;



- 이제 시작이다. 아직 소스를 분석을 본격적으로 하진 않아서 어리벙벙 하다.~~

다음달엔 끝을 내자. 시작이 반이다. ㅎ
, .
미루고 미뤘던 TinyOS2.0을 오늘 부터 시작

저번처럼 전부다 번역(회사에서만 보기로 결정) 은 안하고 요점만

추려서~~

블로그에 정리할 예정임~~

보시고 틀린곳 있음 애기들 해봐요

오늘 내일 해서 OverView,를 위시로한 릴리즈 노트 쪽을 중요한 부분 있으면

요점만 추려서 올려 보도록 하겠습니다.
, .
오랫동안 써오던 맥슨 브라우저를 버렸다..

남들이 괜히 특이 한거 쓴다고 뭐라 하든 말든 개의치 않고 쓰던 맥슨 브라우져를 오늘 지워버렸다.

맥슨 브라우져에서 내가 가장 많이 쓰는 기능이 탭이랑 마우스 제스쳐 였는데..

그걸 익스7과 플러그인 마우스 제스쳐로 대채 하니 오히려 더 빨라진 것이 나아 진것 같다.

맥슨의 단점이 플래쉬가 있을경우 CPU 점유율이 높아 지는 느낌이었는데

익스 7엔 그게 없다..

맥슨 쓰다보니 익스 7도 적응도 아주 쉽고..

맥슨을 버린 결정적인 이유는

아무래도 플러그인이 안돌아 갈때가 있다는거

결정적인 플러그인은 구글 노트 이다.

아무 사이트나 캡쳐 할 수 있는 굉장히 편한 애드온인데..

그게 맥슨에서 안된다는것 그 이유가 가장 컸던것 같다.

마우스 제스쳐를 모르시는 분들을 위한 설명

마우스 오른쪽 버튼 오른쪽 드래그 - 앞으로
마우스 오른쪽 버튼 왼쪽 드래그 - 뒤로(이게 굉장히 편하다 ^^);

그럼 오늘도 열심히~~

모두들 익스 7 + 마우스 제스쳐를 써보시길~
, .

드뎌 뽑을까 말까 하던 사랑니를 쑥~~~ 뽑아 부렷다 ㅡ.ㅡ;

소감은.. 쓰리다 아프다... 허전하다..

이별의 느낌도 말로 표현하면 비슷 하겠지만..

솔직히.. 이별보다 더 아프다 ㅜ.ㅜ;;;

이빨 아픈거 잘 참지만.. 신경 쓰이는건 어쩔수 없는 문제..

오늘 할일도 산더미 인데.. 진도는 안나가고 머리는 아프고 죽을 맛이구나 ㅜ.ㅡ;;

오늘은 정시 퇴근해야쥐 ㅎㅎ ^^;;

, .