2010년 6월 23일 수요일
contiki overview…
네트워크 스택으로는 uIP와 Rime를 지원하는데, uIP는 Contiki 개발자인 Adam Dunken이 제안한 8비트 MCU를 위한 TCP/IP 스택으로 임베디드 환경에서 인터넷을 통해 통신을 할 수 있도록 해준다. uIP는 현재 1.0버전까지 나와 있으며 IP,ICMP, UDP와 TCP 프로토콜을 지원한다. 일부 기능을 제거하고 느린 MCU 등을 고려하여 디자인되었기 때문에 delayed acknowledgment 기능을 제외하면 25,000kB/s 정도의 최대전송률을 가진다.
BSD socket 인터페이스와 유사한 protosocket 라이브러리를 제공하여 사용자가 쉽게 TCP 연결을사용할 수 있도록 하였으며, DNS resolver, SMTP e-mail sender, telnet server 등 다양한 애플리케이션을 함께 제공하고 있다. Rime은 저전력 통신을위해 구현된 멀티 홉 데이터 전송 프로토콜로 플러딩(flooding)을 통해 best-effort 브로드캐스팅을 지원하며, 컴파일 된 코드가 600byte 미만의 간단한 프로토콜이다.
Contiki 응용을 테스트해 볼 수 있는 Cooja라는 시뮬레이션 툴을 제공하며, 최근 릴리즈된 2.1버전에서는 노드의 에너지 상황을 실시간으로 모니터링 할 수 있는 기능을 지원한다.
현재 Contiki는 2010년 2월 16일 기준으로 2.4 ver. 이 릴리즈 되어 있으며 MAC, uIP/Rime, SensorAPI, COOJA/MSPSim, Micaz & Sensinode 8051/CC2430 등이 새롭게 지원되거나 확장되었다.
2010년 6월 14일 월요일
안드로이드 개발 환경 구축
우분투 10.04-alternate 에서 안드로이드 개발 환경 셋팅
이미 이클립스가 설치되어 있으므로 이 부분은 제외
1. http://developer.android.com/sdk/index.html 에서 리눅스 패키지를 다운로드 한 후 원하는 위치에 압축을 해제
2. bashrc 파일에 환경 변수 추가
$vim ~/.bashrc
export PATH=${PATH}:~/opt/android-sdk-linux_86/tools
3. 이클립스 플러그인 설치(Eclipse 3.5 galileo)
add site : http://dl-ssl.google.com/android/eclipse/
4. Android SDK 경로 설정
eclipse – window – preferences
SDK Location : /opt/android-sdk-linux_86
5. Emulator 등록
$/opt/android-sdk-linux_86/tools
$./android
Avaliable Packages에서 최신 버전 API, SDK 를 인스톨한다.
5. 테스트를 위한 가상 디바이스 생성
Virtual Devices 선택 후 New…
Create new AVD 창이 나타나면 Name, Target 등을 지정하고 Create 한다.
2010년 6월 10일 목요일
T2 TOSSIM
T2에서도 시뮬레이터 기능을 지원한다. 이는 센서 노드 어플리케이션이 올바르게 동작을 하는지 또는 오류가 발생할 여지가 없는지 등을 확인하기 위해 사용되지만 신뢰할 정도의 정확성이 요구되지는 않는다.
현재 T2에서는 micaz 플랫폼만을 지원하므로 telos 계열은 제외된다. 이 시뮬레이터를 이용하기 위해서는 avr toolchain이 필요하다. 하지만 TinyOS를 사용하는 사용자라면 이미 해당 환경이 갖추어져 있을 것이다. 또한, 시뮬레이션이 python을 이용하여 이루어지므로 python 관련 환경 설정도 갖추어져야 한다. 이 경우도 마찬가지로 TinyOS 를 사용하는 사용자의 경우라면 시뮬레이션을 위한 준비가 다 된 셈이다.
혹시라도 설정이 되어있지 않다면 대략 난감하므로 터미널을 이용하여 설정된 환경을 확인해 본다.
TinyOS env script file에 다음의 내용이 있는지 확인한다.
export PYTHONPATH=/opt/tinyos-2.x/support/sdk/python
없다면 추가한 후 환경 설정을 갱신한다.
다음으로 python –V 명령을 이용하여 python 버전을 확인해 본 후 sim.extra 파일에 명시된 버전과 일치하는지 확인한다.
$vim /opt/tinyos-2.x/support/make/sim.extra
만약 버전이 일치하지 않을 경우 현재 설치된 버전으로 수정한다.
또한, 옵션 추가를 위해 위와 같이 –shared 를 입력한 후 저장한다. 이제 시뮬레이션 실행을 위해 /opt/tinyos-2.x/apps/Blink로 이동한다.
$make micaz sim
위와 같이 컴파일하여 TOSSIM Library를 생성한다. BlinkC.nc 파일내에는 이미 디버그 메시지의 출력을 위한 dbg 함수가 작성되어 있다. 이 함수를 바탕으로 python을 실행하여 시뮬레이트 할 수 있다.
2010년 6월 9일 수요일
make pc error
어떤 이유에서인지 tinyos 시뮬레이션을 위한 어플리케이션 컴파일이 제대로 이루어지지 않는 문제가 발생함.
tinyos-help를 뒤져봐도 명확한 해결책이 나오지 않아 나름 정확하지는 않지만 gcc 문제(version)로 판단하여 현재 문제 해결 하였음.
2010년 6월 1일 화요일
TinyOS installation on xubuntu 10.04 alternate
$sudo apt-get update
* add packages
$sudo apt-get install vim cvs subversion autoconf automake1.9
$sudo apt-get install g++ gperf swig graphviz alien
* add tinyos repository
$vim /etc/apt/sources.list
deb http://tinyos.stanford.edu/tinyos/dists/ubuntu lucid main
$sudo apt-get update
$sudo apt-get install msp430-tinyos avr-tinyos
$sudo apt-get install tinyos-tools
* nesc compiler downgrade
nesc-1.2.8a-1.i386.rpm –> deb file converter
$sudo alien –c nesc-1.2.8a-1.i386.rmp
$sudo dpkg –i nesc-1.2.8a-1.i386.deb
* tinyos cvs download
$cvs -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos login
$cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co tinyos-1.x tinyos-2.x tinyos-2.x-contrib
* tinyos env. script file(tinyos-1.x, tinyos-2.x)
TinyOS-1.x --------------------------------------------------------
unset CLASSPATH
export TOSROOT=/opt/tinyos-1.x
export TOSDIR=$TOSROOT/tos
export CLASSPATH=$TOSROOT/tools/java
export MAKERULES=$TOSROOT/tools/make/Makerules
echo "--------------------------------"
echo "Currently, TinyOS-1.x env."
echo "--------------------------------"
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
export JDKROOT=$JAVA_HOME
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.
export MSPGCCROOT=/usr/msp430
export PATH=$MSPGCCROOT/bin:$PATH
---------------------------------------------------------------------
TinyOS-2.x --------------------------------------------------------
unset CLASSPATH
export TOSROOT=/opt/tinyos-2.x
export TOSDIR=$TOSROOT/tos
export CLASSPATH=$TOSROOT/support/sdk/java/tinyos.jar:.
export MAKERULES=$TOSROOT/support/make/Makerules
echo "--------------------------------"
echo "Currently, TinyOS-2.x env."
echo "--------------------------------"
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
export JDKROOT=$JAVA_HOME
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.
export MSPGCCROOT=/usr/msp430
export PATH=$MSPGCCROOT/bin:$PATH
---------------------------------------------------------------------
* serial communication(RXTX)
download site http://www.rxtx.org/
$JAVA_HOME/jre/lib/i386
librxtxParallel.so / librxtxSerial.so
$JAVA_HOME/jre/lib/ext
RXTXComm.jar
tinyos java application source file modify
$cd /opt/tinyos-1.x/tools/java
$grep -rn javax.comm *
import javax.comm.*; –> import gnu.io.*;
$cd /opt/tinyos-1.x/tools/java
$./javapath
$tos-install-jni
$make
* Eclipse
$sudo apt-get install eclipse
/usr/lib/eclipse
excute eclipse - Help - Install New Software
add site http://download.eclipse.org/releases/galileo - Modeling download
nescdt plugin 및 yeti2 plugin 설치
tip : 이클립스에서 nescdt 플러그인을 설치하고 빌드하기 위해서는 tinyos 환경 설정이 우선 되어야 한다.
/etc/profile.d 에 tinyos.sh 파일 생성
$vim /etc/profile.d/tinyos.sh
----------------------------------------------------------------------
#Java
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
export JDKROOT=$JAVA_HOME
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.
#Java can find libtoscomm.so and libgetenv.so
export LD_LIBRARY_PATH=$JDKROOT/jre/lib/i386
#Conditional environmental setup for TinyOS-1.x
export TOSROOT=/opt/tinyos-1.x
export TOSDIR=$TOSROOT/tos
export MAKERULES=$TOSROOT/tools/make/Makerules
export CLASSPATH=$CLASSPATH:$TOSROOT/tools/java
# Finally set the path for the MSPGCCROOT
#export MSPGCCROOT=/usr/msp430
#export PATH="$MSPGCCROOT/bin:$PATH"
---------------------------------------------------------------------------
* LAPM, Samba, SSH