'2012/07'에 해당되는 글 2건

  1. 2012.07.25 C언어 구조체 관련 공부
  2. 2012.07.24 TinyOS 2.x 설치하기

#include <stdio.h>

#include <string.h>

#define CHAR_TEST "HOW" //define은 문자열 안에서 즉, " " 안에서는 효력이 발휘하지 않는다.



//struct our_client { //기본적인 구조체

// int number;

// char name[10];

// char addr[20];

//};


typedef struct { //typedef 를 써서 복잡하게 struct(구조체 키워드) our_client(이러한 형태정의한것) com_client(이 이름으로 our_client 형태를 가진 구조체 변수 선언 상당히 길게 써야함

int number; //하지만 typedef 를 쓰면 c_client = struct our_client 가 되므로 c_client com_client 로 줄어든다.

char name[10]; //typedef struct 를 선언하면서 typedef struct 1 {..} 2; 즉 1 과 2는 이름이 꼭 다를 필요가 없다.

char addr[20]; //다른 이름으로 쓰면 이름 정하는데 신경쓰이고 시간 뺏기니까 그냥 같은 이름으로 해준다.

} c_client; //아예 1을 생략하고 바로 typedef struct { ... } value_name; 으로 하면 된다.



//struct {

// int number;

// char name[10];

// char addr[20];

//}com_client; //1회성 구조체인듯?





void main()

{

//struct com_client com_client1; //기본적인 구조체를 쓸 경우에 쓰는 구조체 변수 선언

c_client com_client1;


com_client1.number = 1;

//com_client1.name = "양승민"; //구조체는 바로 넣을 수 없다? 문자배열은 값을 바로 넣을 수 없다?

strcpy(com_client1.name, "양승민");

strcpy(com_client1.addr, "서울시");


//com_client1.addr = "서울시";


printf("고객정보\n");

printf("번호 : %d, 이름 : %s, 주소 : %s\n", com_client1.number, com_client1.name, com_client1.addr);


printf("문자열 안에 쓰면 CHAR_TEST 는 CHAR_TEST\n");

printf("문자열 밖에 쓰면 CHAR_TEST 는 %s\n",CHAR_TEST);

}

Posted by 노라스
,

TinyOS 2.x 설치하기

TinyOS 2012. 7. 24. 21:02

Windwos 환경에서 Cygwin 설치하고 TinyOS 2.x 를 설치해서 Blink 나 Uart 를 이용해서 채팅 프로그램 만들어서 실행시키는데 까지는 문제 없었다.

하지만 Tinyos 2.x 의 tools 에 있는 Java 들을 make 하려니 무슨짓을 해도 컴파일이 되지 않았다.

지금 이전까지도 정말 설치만 수십번 한듯 하다. 

Tinyos 는 정말 운영체제와 Java 버전등을 너무 가린다. 

Tinyos 2.0 버전대는 JDK 를 1.5 로 설치, 2.1 버전대는 JDK 를 1.6 으로 설치해야 missmatch 가 일어나지 않는다.

JDK 버전을 맞춰도 tos-install-jni 에서 에러가 난다. ㅡ,.ㅡ getenv.dll 과 toscomm.dll 파일명 끝에 -32.dll 로 바꿔서

/usr/lib/tinyos 폴더에 복사해서 해결.


하지만 환경변수 설정에서 또 막히고, 다시 해결하고, 그래도 make 하면 무수한 에러를 뽑아내고..

당최 아직까지도 뭐가 문제인지 모르겠다.


아예 리눅스로 개발환경을 바꾸려다가 xubunTOS 2.0 을 알게 되었다. 아 진작에 검색을 할껄.. 

설치하면 바로 TinyOS 로 개발할 수 있게 만들어져 있다.

TinyOS 1.x 와 TinyOS 2.x 로 개발할 수 있으며 tos1, tos2 로 언제든지 환경을 바꿀 수 있다.


다운로드 링크 (Vmware 는 검색하면 나옵니다~)

http://toilers.mines.edu/files-XubunTOS/XubunTOS-2.0.iso

http://5secondfuse.com/tinyos/XubunTOS-2.0.iso


첫번째 주소로 받는게 속도가 빠르다.


Vmware 로 설치하는데 걸리는 시간은 오래 걸리지 않으며 ( JDK 설치하고 javax.comm 설치하고 cygwin 다운로드해서 패키지 받고, TinyOS RPM 들 일일이 설치하고, 환경변수 설정하고...... 하는 것보다 훨씬 빠르다 ㅜㅜ )

만약 개발하다가 리눅스가 꼬여버렸다면 다시 재설치하면 된다.


XubunTOS 2.0 설치하고 나서 /opt/tinyos-2.x/support/sdk/java 에서 make 로 컴파일을 해줘야 Java 애플리케이션을 실행할 수 있다.


 

나를 빡치게 만들었던 수많은 컴파일 오류.. ㅜㅜ


깔끔하게 컴파일 되서 Java 애플리케이션을 실행시켜 보았다. Mote 인식도 잘하고 잘 돌아간다!






Posted by 노라스
,