'Hmote'에 해당되는 글 10건

  1. 2010.05.08 NesC Manual
  2. 2010.05.06 TinyOS-1.x Installation on Linux(Fedora 10)
  3. 2010.05.06 CC2420 채널변경 옵션
  4. 2010.05.06 NesC
  5. 2010.05.06 하이퍼터미널 사용
  6. 2010.05.06 UART
  7. 2010.05.06 기본 구성 분석 (module)
  8. 2010.05.06 기본 구성 분석 (configuration)
  9. 2010.05.06 Compile
  10. 2010.05.06 Install 및 Patch

NesC Manual

old/Hmote 2010. 5. 8. 01:01
TinyOS는 NesC라는 언어를 사용하고 윈도우에서 cygwin으로 프로그램을 작성한다. 메뉴얼 첨부...

'old > Hmote' 카테고리의 다른 글

TinyOS-1.x Installation on Linux(Fedora 10)  (0) 2010.05.06
CC2420 채널변경 옵션  (0) 2010.05.06
NesC  (0) 2010.05.06
하이퍼터미널 사용  (0) 2010.05.06
UART  (0) 2010.05.06
Posted by jazzlife
,

TinyOS-1.x Installation on Linux(Fedora 10)

TinyOS-1.x Installation on Linux(Fedora 10)

콘솔(터미널)을 열어 root 권한으로 진행...

1. IBM Java sdk, javacomm 다운로드 받는다.
http://www.ibm.com/developerworks/java/jdk/linux/download.html 에서 아래 두 개의 rpm파일을 다운로드 받는다.
다운로드 받기 위해서 등록은 필수 -.-
IBM Java를 사용하는 이유는 설치가 쉬워서?? SUN Java는 설치가 어렵다는데... -.-

ibm-java2-i386-sdk-5.0-9.0.i386.rpm
ibm-java2-i386-javacomm-5.0-9.0.i386.rpm

파일을 다운로드 받았으면 설치를 한다.

$>yum localinstall --nogpgcheck ibm-java2-i386-jre-5.0-9.0.i386.rpm
$>yum localinstall --nogpgcheck ibm-java2-i386-sdk-5.0-9.0.i386.rpm
$>yum localinstall --nogpgcheck ibm-java2-i386-javacomm-5.0-9.0.i386.rpm


설치가 끝나면 /opt/ibm/java2-i386-50에 설치된다.
vi /root/.bashrc 파일을 열어 아래와 같은 내용의 Java path 및 환경변수를 추가하고 저장한다.

#JAVA
export JAVA_HOME=/opt/ibm/java2-i386-50
export JDKROOT=$JAVA_HOME
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$CLASSPATH


2. TinyOS linux tools 를 다운로드 및 설치한다.
http://www.tinyos.net/dist-1.1.0/tools/linuxhttp://www.tinyos.net/dist-1.2.0/tools/linux 에서 아래 파일들을 다운로드 받는다.

avarice-2.0.20030825cvs-1.i386.rpm
avr-binutils-2.13.2.1-1.i386.rpm
avr-gcc-3.3tinyos-1.i386.rpm
avr-insight-pre6.0cvs.tinyos-1.3.i386.rpm(rpm -ivh --replacefiles 명령으로 설치)
avr-libc-20030512cvs-1.i386.rpm
make-3.80tinyos-1.i386.rpm (기존에 파일이 없다고 나오는 경우 yum install make로 설치)
graphviz-1.10-1.i386.rpm ( graphviz tool의 경우 compile error를 발생시키므로 yum install graphviz로 설치)
msp430tools-base-0.1-20050607.i386.rpm
msp430tools-binutils-2.16-20050607.i386.rpm
msp430tools-gcc-3.2.3-20050607.i386.rpm
msp430tools-gdb-6.0-20050609.i386.rpm (설치시 에러가 나므로 일단 패스 -.-.)
msp430tools-gdb-proxy-6.0-20050609.i386.rpm (마찬가지로 패스 -.-.)
msp430tools-libc-20050308cvs-20050608.i386.rpm
msp430tools-jtag-lib-20031101cvs-20050610.i386.rpm
msp430tools-python-tools-1.0-1.noarch.rpm
nesc-1.2.8a-1.i386.rpm
tinyos-tools-1.2.3-1.i386.rpm
tinyos-1.1.15Dec2005cvs-1.noarch.rpm

다음과 같이 설치한다.

$>yum install gcc-c++
$>yum install make
$>yum localinstall --nogpgcheck avarice-2.4-1.i386.rpm
$>yum localinstall --nogpgcheck avr-binutils-2.15tinyos-3.i386.rpm
$>yum localinstall --nogpgcheck avr-gcc-3.4.3-1.i386.rpm
$>yum localinstall --nogpgcheck avr-libc-1.2.3-1.i386.rpm
$>rpm -ivh --replacefiles avr-insight-6.3-1.i386.rpm
$>yum install graphviz
$>yum localinstall --nogpgcheck nesc-1.2.8a-1.i386.rpm
$>yum localinstall --nogpgcheck tinyos-tools-1.2.3-1.i386.rpm
$>yum localinstall --nogpgcheck msp430tools-base-0.1-20050607.i386.rpm
$>yum localinstall --nogpgcheck msp430tools-binutils-2.16-20050607.i386.rpm
$>yum localinstall --nogpgcheck msp430tools-gcc-3.2.3-20050607.i386.rpm
$>yum localinstall --nogpgcheck msp430tools-libc-20050308cvs-20050608.i386.rpm
$>yum localinstall --nogpgcheck msp430tools-jtag-lib-20031101cvs-20050610.i386.rpm
$>yum localinstall --nogpgcheck msp430tools-python-tools-1.0-1.noarch.rpm
$>yum localinstall --nogpgcheck tinyos-1.1.15Dec2005cvs-1.noarch.rpm

CVS repository로부터 TinyOS source를 다운로드 받아 복사해도 되지만 이 부분은 아직 해보지 않아서 검증되지 않았지만 다음과 같이 source를 받아오면 된다.
이 때, 반드시 해당 디렉토리로 이동 후 명령 실행해야 한다.(opt/tinyos-1.x의 경로에 설치할 경우, /opt 폴더에서 실행)

$>cvs -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos login(passware를 물어보면 엔터를 친다.)
$>cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co -r tos-1-1-14-candidate tinyos-1.x
또는, cvs -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co tinyos-1.x(설치시간은 대략 30분 남짓 걸린다.)

만약 cvs 가 실행이 안 될 경우, cvs 설치한다.

$>yum install cvs

설치가 끝나면 vi /root/.bashrc 파일을 열어 아래와 같은 내용의 환경변수를 추가한다.

#MSPGCC
export MSPGCCROOT=/opt/msp430
export PATH=$MSPGCCROOT/bin:$PATH

#TinyOS
export TOSROOT=/opt/tinyos-1.x
export TOSDIR=$TOSROOT/tos
export CLASSPATH=$TOSROOT/tools/java:$CLASSPATH
export MAKERULES=$TOSROOT/tools/make/Makerules

3. 아래 내용중에 vi /root/.bashrc 파일을 열어 빠진 내용이 없는지 확인한다.

#Java
export JAVA_HOME=/opt/ibm/java2-i386-50
export JDKROOT=$JAVA_HOME
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.

#MSPGCC
export MSPGCCROOT=/opt/msp430
export PATH=$MSPGCCROOT/bin:$PATH

#TinyOS
export TOSROOT=/opt/tinyos-1.x
export TOSDIR=$TOSROOT/tos
export CLASSPATH=$TOSROOT/tools/java:$CLASSPATH
export MAKERULES=$TOSROOT/tools/make/Makerules


이로써 fedora 10 환경에서 TinyOS를 사용할 수 있게 된다.
시스템을 재부팅을 하고, 마지막으로 테스트를 한다.

Blink 디렉토리로 이동~~

$>cd /opt/tinyos-1.x/apps/Blink
$>make install telosb
...
...
...
rm -f build/telosb/main.exe.out build/telosb/main.ihex.out

성공이다... :-)

*TIP
java tools 가 실행되지 않을 경우...
/opt/tinyos-1.x/tools/java 로 이동하여 컴파일...
$>make
해당 툴의 class 파일이 생성되면 사용가능하게 된다.

USB serial Comm. 을 위해 다음과 같이 수정한다.
$>vi /opt/ibm/java2-i386-50/jre/lib/javax.comm.properties의 내용 중

/dev/ttyS=PORT_SERIAL >> /dev/ttyUSB=PORT_SERIAL 로 변경 후 적용하면 끝. 

 

'old > Hmote' 카테고리의 다른 글

NesC Manual  (0) 2010.05.08
CC2420 채널변경 옵션  (0) 2010.05.06
NesC  (0) 2010.05.06
하이퍼터미널 사용  (0) 2010.05.06
UART  (0) 2010.05.06
Posted by jazzlife
,

Makefile 중에서...


 COMPONENT=TRecv
 PFLAGS := $(PFLAGS) -DCC2420_DEF_CHANNEL=22
 include ../Makerules

'old > Hmote' 카테고리의 다른 글

NesC Manual  (0) 2010.05.08
TinyOS-1.x Installation on Linux(Fedora 10)  (0) 2010.05.06
NesC  (0) 2010.05.06
하이퍼터미널 사용  (0) 2010.05.06
UART  (0) 2010.05.06
Posted by jazzlife
,

NesC

old/Hmote 2010. 5. 6. 09:45

TinyOS는 NesC라는 언어를 사용하고 윈도우에서 cygwin으로 프로그램을 작성한다.

메뉴얼 첨부... 

'old > Hmote' 카테고리의 다른 글

TinyOS-1.x Installation on Linux(Fedora 10)  (0) 2010.05.06
CC2420 채널변경 옵션  (0) 2010.05.06
하이퍼터미널 사용  (0) 2010.05.06
UART  (0) 2010.05.06
기본 구성 분석 (module)  (0) 2010.05.06
Posted by jazzlife
,

[ 하이퍼터미널 사용 ]

 

$motelist 명령어로 현재 사용하고있는 port 넘버를 알아낸다.

 

하이퍼터미널을 열고

 1. port 설정

 2. 57600 bit/sec 설정

 3. 8bit

 4. 패리티 없음

 5. 정지비트 1

 6. 흐름제어 없음

'old > Hmote' 카테고리의 다른 글

CC2420 채널변경 옵션  (0) 2010.05.06
NesC  (0) 2010.05.06
UART  (0) 2010.05.06
기본 구성 분석 (module)  (0) 2010.05.06
기본 구성 분석 (configuration)  (0) 2010.05.06
Posted by jazzlife
,

UART

old/Hmote 2010. 5. 6. 09:44

[ UART 사용 ]

; 시리얼 통신을 이용하여 Hmote의 출력값을 보자.


(추가할 것들)

components HPLUARTC;


interface HPLUART as UART;


call UART.init()

call UART.put()

event async result_t UART.get()

event async result_t UART.putDone()

'old > Hmote' 카테고리의 다른 글

NesC  (0) 2010.05.06
하이퍼터미널 사용  (0) 2010.05.06
기본 구성 분석 (module)  (0) 2010.05.06
기본 구성 분석 (configuration)  (0) 2010.05.06
Compile  (0) 2010.05.06
Posted by jazzlife
,

module BlinkM {                        <- 모듈을 정의.


provides {                                <- 나를 콘트롤 할 것.
interface StdControl;
  }

  uses {                                   <- 내가 사용할 것들.
   interface Timer;
   interface Leds;
  }

 }


implementation {

 int i=0;                                                <- 전역변수

 command result_t StdControl.init() {       <- 초기화
  call Leds.init();
  return SUCCESS;
 }


 command result_t StdControl.start() {                <- 시작
  return call Timer.start(TIMER_REPEAT, 1000);
 }
 
 command result_t StdControl.stop() {                <- 종료
  call Leds.init();
  return call Timer.stop();
 }


 event result_t Timer.fired() {                             <- 타이머가 호출되면 실행 (기본적으로 무한 루프)
 
  call Leds.blueOff();
  call Leds.redOff();
  call Leds.yellowOff();
 
  if((i%2)==1)
   call Leds.blueOn();
 
  if((i/2)>=1 && (i/2)%2!=0)
   call Leds.redOn();
 
  if((i/4)>=1)
   call Leds.yellowOn();
 
  i++;
  if(i==8)
   i=0;
  
  return SUCCESS;
 }
}

'old > Hmote' 카테고리의 다른 글

하이퍼터미널 사용  (0) 2010.05.06
UART  (0) 2010.05.06
기본 구성 분석 (configuration)  (0) 2010.05.06
Compile  (0) 2010.05.06
Install 및 Patch  (0) 2010.05.06
Posted by jazzlife
,

configuration Blink {
}

 

implementation {

 components Main, BlinkM, TimerC, LedsC;             <- 사용할 components 들을 선언.

 Main.StdControl -> TimerC.StdControl;                  <- 연결 해주자.
 Main.StdControl -> BlinkM.StdControl;

 BlinkM.Timer -> TimerC.Timer[unique("Timer")];
 BlinkM.Leds -> LedsC;

 }

'old > Hmote' 카테고리의 다른 글

하이퍼터미널 사용  (0) 2010.05.06
UART  (0) 2010.05.06
기본 구성 분석 (module)  (0) 2010.05.06
Compile  (0) 2010.05.06
Install 및 Patch  (0) 2010.05.06
Posted by jazzlife
,

Compile

old/Hmote 2010. 5. 6. 09:42

[ Compile ]

 

$ make <platform> install.<node_number>


$ make <platform> reinstall    <- 변경된 코드만 업로드  (빠르지만 문제가 생길 수 있다.)

 

$ make clean


ex)

 make hybus install.0

 make hybus reinstall.0

 make clean

 



* make <platform> docs  <-  웹형식의 메뉴얼을 만들어 준다. (/doc/nesdoc/<platform>에 생성됨)

'old > Hmote' 카테고리의 다른 글

하이퍼터미널 사용  (0) 2010.05.06
UART  (0) 2010.05.06
기본 구성 분석 (module)  (0) 2010.05.06
기본 구성 분석 (configuration)  (0) 2010.05.06
Install 및 Patch  (0) 2010.05.06
Posted by jazzlife
,

Install 및 Patch

old/Hmote 2010. 5. 6. 09:41

1. Install 및 patch


 1.1 tinyos install


CD안에 있는 TinyOS install 폴더에 들어가면 tinyos-1.1.11-3is.exe 라는 파일이 있다.
더블 클릭하여 실행한다.


인스톨이 다 끝나면, install done이란 메시지가 뜨고 바탕화면에 Cygwin이란 icon이 생성된다.



 1.2. RPM update

CD안에 있는 RPM_tinyos-1.1.13May2005cvs-1 폴더에 들어가면
tinyos-1.1.13May2005cvs-1.cygwin.noarch.rpm 라는 파일이 있다. 이 파일을 tinyos가 설치된 디렉토리의 /opt 디렉토리에 copy한다.
만약 install시에 설치경로를 default로 했다면 C:\Program Files\UCB\cygwin\opt 에 copy 하면 된다.
Cygwin을 클릭하여 들어간 후 ,/opt로 이동한 다음 rpm update를 한다.
완료되었으면 다음과 같이 rpm버전을 확인해보자.


rpm –Uvh tinyos-1.1.13May2005cvs-1.cygwin.noarch.rpm


1.3. Patch

CD안에 [PATCH]hybus-tinyos-1.1.13-20070119폴더로 들어가면 apps, contrib, tools, GPSInformation, tools, tos 라는 디렉토리가 있다. 모든 디렉토리를 전부 copy하여 tinyos가 설치된 곳에 덮어쓰기한다.


- default로 디렉토리 설정을 했다면 C:\Program Files\UCB\cygwin\opt\tinyos-1.x로 이동하여 덮어쓴다.


이제 Hyper-Hmote를 사용하기 위한 모든 준비를 마쳤다.


TIP )
contrib. 디렉토리는 xbow를 포함한 센서 네트워크 개발 업체들의 tinyos software를 모아 둔 디렉토리로서, 센서 노드를 이용한 프로젝트 수행 시에, 개발 참고용으로 하기 좋다.

'old > Hmote' 카테고리의 다른 글

하이퍼터미널 사용  (0) 2010.05.06
UART  (0) 2010.05.06
기본 구성 분석 (module)  (0) 2010.05.06
기본 구성 분석 (configuration)  (0) 2010.05.06
Compile  (0) 2010.05.06
Posted by jazzlife
,