TinyOS_programming.hwp

Size: px
Start display at page:

Download "TinyOS_programming.hwp"

Transcription

1 ver.0.9 TinyOS 프로그래밍 KETI/ Ubiquitous Technology Research Center( TinyOS Korea Forum( TinyOS Korea Forum, Jeonghoon Kang, All rights reserved. 본문서는비상업적목적으로수정없이재배포할수있습니다.

2 1. TinyOS Kernel TinyOS는기존의 PC용또는임베디드시스템용 OS들과다르게한번에하나의애플리케이션만을실행한다. 기본적으로 TinyOS는센서로부터데이터를취득하여무선네트워크로전 송하는간단한동작을담당하기때문에, TinyOS의설계단계에서전원소모와메모리소모가많아지게할수있는여러개애플피케이션이동시에동작되는기능은제외하였다. 다만, 여 러가지기능을동시에동작시키고자할때에는하나의애플리케이션에, 아주작은단위로 동작을세분화하여태스크(Task) 형태로동작시킨다. 결국, TinyOS 커널은이런특징때문에하나의 main() 함수로구성되어있다. TinyOS 커널의동작순서에대한이해에앞서, nesc로작성된소프트웨어의컴파일순서를이해해야한다. nesc로작성된코드는 nesc 컴파일러에의해 C 언어로변환된다. C 언어로변환된후 GCC(GNU C 컴파일러) 에의해기계수준의바이너리파일로컴파일된다. 컴 파일은 make 를이용하여진행되며( 예, make telosb), nesc의 C 변환과컴파일이한번에이 루어진다. 컴파일과정에서사용되는 nesc 파일 (*.nc) 들은내용에따라해당디렉토리에분산되어있는데, make 시에포함되는(include) 옵션을분석하여찾을수있다. 컴파일된바이너리파일을플랫폼에다운로드한후, 전원을인가하면하드웨어초기화와 커널초기화가이루어진다. 이후 TinyOS 의커널이동작하게된다. TinyOS 커널은단순한 FIFO 형태의스케줄러로동작을하며, 이스케줄러는전원이꺼질때까지무한루프(loop) 에서동작한다. < 부팅후플랫폼동작순서 > 전원이켜졌을때의동작은 MainM.nc 파일에서분석할수있다. MainM component의위치는 make 파일을분석하여위치를찾을수있다. MainM은 nesc가 C언어로변환될때사용되는 main() 함수를포함하고있다. 아래 MainM component는텔로스b(telos revision B) 용소프트웨어컴파일에사용되는것 이다. 전원이켜지면 main() 의첫번째줄인 call hardwareinit() 부터실행된다. hardwareinit() 은하드웨어, 즉, 센서와칩들에대한초기화를실행한다. 하드웨어초기화후에, 스케줄러 초기화를위한 TOSH_sched_init() 을호출하여스케줄러의변수와태스크큐(Task Queue) 를초기화한다. call StdControl.init() 과call StdControl.start() 는각애플리케이션에서사용하는component 들의초기화를위한 command 이다. 이 command는각 component들이사용되기위해필요한초기화루틴(routine) 을포함하고있으며, 애플리케이션에서사용되는 component가많은경우에는각component의stdcontrol 코드가모두선택되어이위치에서호출된다. 애플리케이션초기화가 StdControl.init(), StdControl.start() 룰통해이루어진후에는하드웨 - 1 -

3 어인터럽트를 nesc_enable_interrupt() 를통해동작시키고무한루프에서TinyOS 커널, 즉, TOSH_run_task() 로TinyOS 태스크스케줄러를동작시킨다. module MainM { } uses command result_t hardwareinit(); uses interface StdControl; implementation { } int main() attribute ((C, spontaneous)) { } call hardwareinit(); TOSH_sched_init(); call StdControl.init(); call StdControl.start(); nesc_enable_interrupt(); for(;;) { TOSH_run_task(); } < MainM 의 main() > TinyOS 커널(Kernel) 의구조도는초기화다음에무한루프에빠지면서하나의함수를실행시키고슬립(Sleep) 상태로바뀌게되는것을표현하고있다. MainM component의 main() 에서무한루프로들어가게되면, 아래그림의 " Task Queue Empty? " 부분에서시작되며, 초기화후에는 Task Queue 가비어있으므로바로슬립(Sleep) 상태로바뀌게된다. 애플리케이션동작을실행시키기위해발생하는것이하드웨어인터럽트(Interrupt) 이다. 이런인터럽트기반에서초기화소프트웨어동작은중요한의미를가진다. 초기화된루틴후에플랫폼은슬립상태로존재하고하드웨어인터럽트가발생함에따라하드웨어인터럽트에관련된동작을수행하며수행이완료되면다시슬립상태가된다. 이런반복적인하드웨어인터럽트에따라동작하는것이 network embedded system 의가장큰특징이다

4 < TinyOS Kernel, Task Scheduler > main() 함수에서 StdControl 에의해초기화할때설정해놓은타이머(Timer) 등의하드웨어 인터럽트들이발생하면해당인터럽트서비스루틴으로빠지게된다. 위그림에서는인터럽트 벡터를통해, 해당이벤트핸들러로동작이수행된다. 이벤트핸들러의동작이종료되면다시 Task Queue Empty? 부분으로돌아가다음하드웨어인터럽트를기다리게된다. 센서네트워크가아닌, 지금까지의 PC, 임베디드시스템에서 OS들은인터럽트서비스루틴에서간단한작업만을한다. OS 코어에게인터럽트가발생하였다는표시만하고다시인터럽트를기다리는위치로간다. 이경우, OS는정해진시간마다인터럽트가발생했는지반복해서점검하게되고, 인터럽트가발생했을경우에는해당인터럽트를처리한다. TinyOS에서는 nesc 장점을살려서인터럽트가발생하게되면실시간(Real-Time) 으로해야 될동작을바로수행한다. 이런방식을통해대부분짧은처리시간을갖는인터럽트핸들 러로구성된 TinyOS 애플리케이션을효율적으로실행시킨다. 기존 OS들처럼하드웨어에서 발생한인터럽트를처리하게되면이벤트관리함수가많아지게되며, 메모리와전력사용이추가되는단점이발생한다. 이벤트핸들러에따라서동작들이수행되고, 실행되는동작들중에일부함수는실행할때일반적인호출방식이아닌태스크(Task) 라는방식으로실행시킬수있다. 이때, 포스트 (post) 라는키워드를쓰게된다. 그렇게되면여기서실행되는함수들이곧바로실행되지않고 Task Queue 에그함수의주소를입력하게된다. 그렇게되면태스크형태의함수를제외한함수들이다실행된후에, Task Queue 에함수주소가있는지없는지를확인하게된다. 태스크함수가있다면이함수의주소에해당하는함수를실행을시켜(Run Task) 주고, Task 에주소가없어질때까지태스크의실행을반복한다실행이완료되면에실행해야할함수의주소가없을것이고이때플랫폼은 Queue. Task Queue 어떻게보면 Sleep 상태로빠지게된다. Event Handler 에서호출하는태스크함수는곧바로실행이안되고, 추후에 안 - 3 -

5 다른일반함수들이다실행된후에동작되니이것은 Real-Time을보장하지못하는방법으로생각될것이다. 이 TinyOS의커널은메인함수에도봤듯이초기화하는과정이매우짧은시간동안이루어진다. 메인함수에서많은하드웨어와소프트웨어초기화명령이수행되었음에도불구하고짧은시간안에실행이이루어지기때문에이벤트핸들러에서수행하는코드의양이많아도전체적으로걸리는시간은짧기때문에, 함수하나를중간실행하지않고태스크큐에넣어주고이것의실행을나중으로미루고나머지함수들을실행해준후, Task Queue 에있는함수를실행해주어도상대적으로많은시간지연이발생하지않는다. 2.nesC 의특징 nesc는component( 컴포넌트) 기반의프로그래밍언어이기때문에여러가지장점이있다. Component를애플리케이션소프트웨어를만드는부품이라는의미로생각하는것이이해에도움이된다. 부품들을조립하면하나의시스템이만들어지듯이, 소프트웨어부품 (component) 들을잘연결하여조립하면쉽게하나의애플리케이션소프트웨어를만들수있다는것이 nesc 의가장큰장점이다. 임베디드네트워크환경에서의코드재사용성이많은프로그래밍언어이다. 만일, 1초마다 LED 가점등되는애플리케이션을만들고싶으면, 기본 component인main, 시간을관리하는 Timer, LED를관리하는LedC 세개의component를조립하면, 하나의애플리케이션을만들수있다. 조립은 interface( 인터페이스) 라는연결도구를이용한다. nesc의또하나의장점은컴파일시에하드웨어동작시에발생할수있는에러를체크할수있도록만들어져있다는것이다. Linux 등의 OS 에서는 ioctl(fd,tcsets,data); 방법으로 CPU 에연결되어있는디바이스를제어한다. 이방법은디바이스를지시하는 fd( 인자) 내 용이, 동작(running) 시에명령을내리는디바이스마다다르게되며, 시스템의특징에따라소프트웨어개발자가다른이름으로만들수있다. nesc 는이런방식과다르게, CPU에연결되 는각디바이스들를동작시키는컴포넌트로만들어놓고, 이컴포넌트를이용하기때문에 컴파일할때에적절한디바이스를사용했고, 이실제동작시에발생할수있는오류를컴파일과정중에체크할수있다. Linux 소프트웨어를컴파일할때, 플로우차트나어떤동작 이일어날것인가를컴파일러가파악하기는힘들다. fd 라는인자에어떠한디바이스가지정될지변수자체만으로는판단하기힘들고, 또각디바이스를제어하는명령을내릴때, 이것 이적절한명령인지등을파악할수없다. 센서네트워크디바이스처럼한정된개수의간단한주변디바이스를갖는경우, nesc로만들어진컴포넌트는소프트웨어의동작상태 (running) 다. 상태에서의오류를컴파일시에체크하고이를방지할수있는특징을지니고있 아래의그림은 Blink 라는애플리케이션의조립상태( 구조) 를보여주고있다. nesc의컴포넌트들은인터페이스를이용해서조립되는데, 아래그림에서 Main component는애플리케이션에반드시필요한최상위 component 이며, 이것이 SingleTimer, BlinkM component와각각의 StdControl interface 로연결되어있다

6 컴포넌트연결 조립상태도 < / > 3. nesc 프로그래밍 nesc의함수는commad와event 라는두가지함수를사용한다. command는일반적인 c 언어의함수와비슷하고, 명령의방향이상위소프트웨어에서하위하드웨어로호출된다. event 는하드웨어동작에대한이해가필요한데, command ( 명령) 에따른기능수행후에발생하는이벤트를호출하는함수이다. 2-Level Structure Command(Bottom direction) Non-time critical Long running operations Cannot preempt& can be preempted Background computation Events(Top direction) Time critical Small running operations Cannot be preempted Able to interrupt running Tasks TinyOS는 non Preemption 방식으로동작한다. 이는현재동작하고있는태스크를중지시키지못하고, 먼저실행되고있는태스크의수행이종료될때까지기다려야 하는방식을취하고있다. 다만하드웨어인터럽트는인터럽트서비스부문에서처리 되며, 모든수행중인동작보다우선적으로처리된다. 즉, 이전에수행되던태스크를정지시키고인터럽트핸들러가처리된다. Pre-emption 의개념 ( Pre-emption as used with respect to operating systems means the ability of the operating system to preempt or stop a currently scheduled task in favour of a higher priority task. The scheduling may be one of, but not limited to, process or - 5 -

7 I/O scheduling etc. Non-preemptability arises, for instance, when handling an interrupt. In this case, scheduling is avoided until the interrupt is handled. Making a scheduler preemptible has the advantage of better system responsiveness and scalability. The schedulers used in most modern operating systems, such as various flavours of Unix, can preempt user processes. This is called preemptive multitasking, and is in contrast to cooperative multitasking wherein a process "gives away" its time by utilizing kernel resources or by specifically calling a kernel routine to allow other processes time to run. Some operating systems' schedulers (including Linux as of the 2.6 series) have the ability to preempt a process while it is processing a system call as well (a preemptible kernel). Linux, Unix, *BSD, Mac OS X, and Windows NT are all examples of operating systems that utilize preemptive multitasking; Netware, Windows for Workgroups, and Macintosh System 9 are all examples of cooperative multitasking operating systems. nesc 의특징은아래와같으며, 제약적인프로그램메모리와램메모리때문에, 대부분의경우 static( 정적) 메모리할당을하여, 컴파일시에플랫폼에서사용될메모리의크기를결정한다. [nes-si:] Network Embedded System C Language Supports TinyOS Make applications for Network Embedded system No dynamic memory allocation Extension of C programming language Efficient code for micro-controllers AbletointeractwitholdCcode Many C Programmer C is little helpful for safe code& structuring applications nesc와c 는동일한문법을따르고있고, nesc에추가된개념이component( 컴포넌트) 와Interface( 인터페이스) 이다. Component는일종의부품으로써소프트웨어를개발할때사용하는부품으로사용된다. 기능을모아놓은부품으로, RF 통신의기능이필요하다면해당 Component를사용하면된다. Component 들을연결하여원하는기능의소프트웨어를만들어가는데, 사용하는 component 들간에는 interface( 인터페이스) 를사용하여연결한다. Interface는각 component 들이제공하는기능 (command, event) 를정의하는데사용 - 6 -

8 된다. Component 는아래와같이 *.nc 파일의형태로존재하며, 세부적으로 Component는 Module, Configuration 으로구분된다. Module xxxm.nc Code file Configuration xxx.nc/oooc.nc Wiring of components Define wiring of Modules Interfaces xxx.nc Contains only definition Commands/Events 모듈(module) 은실제실행되는코드인함수가존재하는파일이다. 확장명은*.nc 이다. 모듈은여러개의함수를지원하는파일이며, 인터페이스를통해해당함수들이구현된다. 여기서인터페이스를통해함수들이제공(provides) 되거나사용(uses) 되는방법은주 의해서이해해야한다. 일반적으로함수를코드로구현해서제공하고, 원하는곳에서 호출하여사용하는것이C 언어에서함수를사용하는방법이다. nesc에서는일반c와 다르게그냥함수를구현하여제공만하지않는다. 인터페이스라는것은일반C와다르게함수를두가지로분류한다. 커맨드(command) 와이벤트(event) 이다. 모듈은 provides 키워드로제공할커맨드함수를정할수있다. 제공된커맨드함수는다른모듈에서호출하여사용할수있다. provides interface Leds 는 Lesd.nc 인터페이스파일에정의되어있는커맨드함수들을모듈파일내에서구현하여, 다른모듈에서호출하여사용할수있다. 반대로모듈은 uses 키워드로다른모듈에서제공하는커맨드함수를호출하여사용할수있다. 위에서예를든, provides interface Leds; 에대응되는코드는 uses interface Leds; 이다. uses 키워드는인터페이스 Leds.nc 파일에정의되어있는커맨드함수를호출할수있다는의미이다

9 uses 키워드는한가지의미를더포함하고있다. 이것은 nesc 프로그래밍언어의문법을이해하는초기에가장이해하기힘든부분이다. uses interface Leds; 는 Leds.nc 에정의되어있는이벤트(event) 함수를구현해야함을의미한다. 만약, Leds.nc 파일에정의되어있는이벤트가없는경우도있다. provides 와 uses 의사용방법은아래그림과같이, 하나의컴포넌트에서 provides 키워드로인터페이스를제공하고다른쪽컴포넌트에서는uses 키워드를사용하여해당인터페이스에정외된커맨드와이벤트를사용한다. 사용한다는의미는, 제공되는커맨드를호출할수있다는것이며, 이벤트를구현하는것이다. < 그림> 컴포넌트와인터페이스연결예 위그림에서, App.nc 는 Component-1.nc 와인터페이스 Interface-1.nc 로연결되어있다. Component-1.nc에서 provides interface Interface-1; 로인터페이스를제공하며, App.nc에서 uses interface Interface-1; 로Interface-1 을사용한다. 이를통해서, App.nc에서는 Interface-1.nc 에정의되어있는커맨드함수를호출할수있으며, Interfacd-1.nc 에정의되어있는이벤트를구현한다. 커맨드함수를호출하는것은일반 C 언어에서의함수호출과동일하다. 이벤트는기존의 C 언어에서의함수중함수포인터를이용한Callback 함수호출과동일한기능을제공한다. 하드웨어에서인터럽트가발생하면그에해당하는이벤트함수가실행된다. 어떤모듈에서 uses interface Timer; 코드를이용하여 Timer 인터페이스를사용하 - 8 -

10 면, Timer.nc 에정의되어있는커맨드함수를호출할수있으며, Timer.nc에정의된이벤트함수를구현해야한다. 모듈과인터페이스는각커맨드, 이벤트함수를구현하고호출, 실행시키기위한방법에대해설명하였다. nesc에는이런모듈을그룹화하여추상화하기위해서는컨 피규레이션컴포넌트를사용할수있다. 컨피규레이션은여러모듈을서로연결 (wiring) 하여그룹화하고, 외부컴포넌트가기능을사용할수있도록해당인터페이스를제공(provides) 한다. < 그림> 컴포넌트, 인터페이스파일 위그림에서와같이컴포넌트인컨피규레이션, 모듈과인터페이스는확장명이*.nc 이다. 파일이어떤종류인지는파일내부를확인해봐야한다. 반드시정확하지는않지 만는컨피규레이션을의미하고는모듈임을의, CC2420RadioC.nc, CC2420RadioM.nc 미한다

11 Component Configuration Module Provides Uses Interface Command Event Task Post Interface Command/ Event, (command), (event). < 그림> 컴포넌트, 컨피규레이션 위그림은컴포넌트의예를보여준다. 이컴포넌트는이름이 Blink인컨피규레이션이다. 39 줄처럼선언되어있고, 42줄과같이Main, BlinkM, SingleTimer, LedsC, UART 컴포넌트를사용한다. 이컴포넌트들은컨피규레이션또는모듈이며, Main.nc, BlinkM.nc, SingleTimer.nc, LedsC.nc, UART.nc 의파일로존재한다. 이파일들은현재디렉토리에위치하거나, 또는컴파일러가사용하는경로중에존재한다

12 컨피규레이션에서는컴포넌트의이름은명시적으로표시되어있지만, 어떤것이인 터페이스인지에대해서는해당파일에명시적으로표현되고있지않다. 따라서컴포 넌트들의이름과와이어링상태를확인하여, 해당파일을일일이열어서코드를읽어 보면알수있다. 43줄Main.StdControl 의경우는Main 은42줄에따라컴포넌트임을알수있다. 그러나 StdControl 에대한선언은없다. 컨피규레이션에서컨포넌트와인 터페이스를구분하는. 의사용을이해하면, 추가적인파일을읽지않아도쉽게컴포넌트와인터페이스를구분할수있다. C 언어는. 의역할이구조체의멤버변수를구분할때사용한다. nesc에서도비슷하게컴포넌트에서제공또는사용하는인 터페이스를소속을개념으로파악하면비슷한의미를갖는다.. 은소속의의미를갖는다고할수있다. 컨피규레이션에서. 앞쪽은컴포넌트를의미하고, 뒤쪽은컴포넌트에소속된인터페이스를의미한다.. 의사용은추후설명할모듈에서는동일한소속의의미를갖으나, 인터페이스에소속된커맨드또는이벤트함수를의미하기때문에코드분석시에주의해야한다. 43줄 Main.StdControl -> SingleTimer.StdControl; 은 Main 컴포넌트와 SingleTimer 컴포넌트가어떻게연결(wiring) 되어있는지를표현한다. Main과SingleTimer는 StdControl 이라는인터페이스로연결된것이며, SingleTimer가StdControl 인터페이스를제공하고Main이StdControl 인터페이스를사용한다. SingleTimer.nc 파일에는 provides interface StdControl; 이라는코드가포함되어있고, Main.nc 에는 uses interface StdControl; 이라는코드가포함되어있다. 따라서StdControl.nc 파일에정의되어있는커맨드함수들이 SingleTimer.nc 파일에구현된다. StdControl 은이벤트함수가없지만, 만약에있다면, 해당이벤트들이Main.nc 에구현될것이다. -> (wiring) 의의미는제공(provides) 와사용 (uses) 의관계를표현한다. 제공이라 는의미와는다르게화살표방향이제공과는반대로되어있다. 이기호의의미를해석할때실제커맨드함수가구현된코드가어느곳에있는지코드의위치를지시하 고있다고해석해야한다. 와이어링은 -> 과 =, 두가지기호가있다. = 기호에대해서는추후설명한다. 46 줄은인터페이스를생략한경우다. 42줄처럼 LedsC는컴포넌트라는것을알수있고, 일반적인경우에는컴포넌트뒤에. 이찍히고이어서인터페이스이름이적혀있어야하지만, 여기서는생략되어있다. 컴포넌트들은동일한인터페이스로연결되어야하기때문에생략하여도컴파일러는해당인터페이스를찾을수있다

13 - 12 -

14 < 그림> 컴포넌트, 모듈 모듈은인터페이스를제공또는사용하며, 커맨드와이벤트가실행될수있도록구현한다. 즉, C 언어의함수처럼실행되는코드를제공한다. 36줄은 BlinkM 이라는모듈을정의하고있으며, 이모듈은인터페이스StdControl 을제 공하고, Timer, Leds, StdControl, ByteComm 인터페이스를사용한다. 36줄부터 45줄까지는모듈 BlinkM 에대해속성을선언한것으로, 제공하는인터페이스의커맨드들이구현 될것이며, 다른컴포넌트에서제공하는인터페이스들을사용하여호출하고이벤트를사용할것을표현한다. 37, 38줄은 StdControl 인터페이스를제공(provides) 하고있음나타내며, 다른컴포넌트 에서는이인터페이스를사용(uses) 할수있다. 제공하는 StdControl.nc 인터페이스파일 에정의된커맨드함수들이 BlinkM.nc 파일하단에코드로구현된다. StdConrol.nc 파일을확인해보면, command StdControl.init(), command StdControl.start(), command StdControl.stop(), 세가지커맨드를정의하고있다. 40에서 45 줄까지는사용(uses) 하는인터페이스를의미한다. 사용하는인터페이스는 다른컴포넌트에서제공하는인터페이스의커맨드함수를호출하여실행할수있고, 그 인터페이스에이벤트함수가정의되어있다면, 이벤트함수를구현하여실행시킨다는의미를갖고있다. 줄의 인터페이스파일은 41 Timer.nc commnad Timer.start(type, sec), command

15 Timer.stop() 의두커맨드함수와 event Timer.fired() 의한개이벤트함수가정의되어있다. BlinkM 모듈에서는다른컴포넌트에서제공하는 Timer 인터페이스의커맨드함수를호출하여실행시킬수있으며, Timer.fired() 를반드시구현하여해당이벤트발생시실행할수있도록해야한다. 다만, 이벤트발생시에실행할것이없으면, 함수의중괄호안을공란으로비워두면된다. BlinM 컴포넌트에서사용되고있는다른인터페이스인도동일한방법으로커맨드함수, 이벤트함수를사용한다. Leds, ByteControl, ByteComm 43 줄의 " as " 키워드는하나의컴포넌트안에서동일한인터페이스가여러번다른목적으로사용될때, 중복사용으로인한혼동을막기위해사용하는키워드이다. 실제는 StdControl 이지만, 38줄의인터페이스와구분하기위해 as로사용이름만변경한것이다. 사용하는인터페이스의커맨드함수의구현된코드를보기위해서는, 상위컨피규레이 션에서의연결관계를찾아실제코드가위치를파악해야한다. 실제실행되는코드를 찾기위해서는상위컨피규레이션파일을확인해야한다. 41줄은Blin.nc 컨피규레이션을통해SingleTimer.nc에서제공되는Timer 인터페이스를사용하고있다. < 그림> 인터페이스

16 < 그림> 인터페이스 인터페이스는컴포넌트와컴포넌트간의커맨드와이벤트의제공, 구현을명시하는역 할을한다. 인터페이스파일에정의된커맨드와이벤트함수만이컴포넌트간에연결될 수있으며, 인터페이스에정의되지않은함수는해당파일에서만개별적으로사용된다. 즉, 개발자가어떤기능을구현하여외부다른컴포넌트에제공하고자한다면, 인터페이 스파일을구현하고, 그에맞도록컴포넌트를작성해서제공해야한다. 반대로, 어떤기 능을사용하고자할때는, 그기능이구현된컴포넌트에서제공하는인터페이스를사용 (uses) 한다는것을명시적으로표현해야한다. 위그림중, Timer.nc 인터페이스는41줄에서헤더파일인Timer.h를include 하고있다. interface Timer는 command result_t start(char type, uint32_t interval); 59 줄, command result_t result_t stop(); 68 줄, event result_t rired(); 73 줄을정의하고있다. 여기서 command 들은 Timer 인터페이스를제공하는컴포넌트에서구현되며, event 는 Timer 인터페이스를사용하는컴포넌트에서구현된다

17 module PTimer{ provides interface Timer; } implementation{ } command result_t Timer.start(){ dosomething(); dosomething(); return SUCCESS; } command result_t Timer.stop(){ dosomething(); dosomething(); return SUCCESS; } 위예제와같이 PTimer 모듈은 Timer 인터페이스를제공(provides) 하고, Timer.nc 인터페이스파일에정의된command인Timer.start() 와Timer.stop() 을반드시제공해야한다. module UTimer{ provides interface GoUse; uses interface Timer; } implementation{ } command result_t GoUse.dosomething(){ call Timer.start(); call Timer.stop(); return SUCCESS; } command result_t Timer.fired(){ dosomething(); dosomething(); return SUCCESS; } 반대로 Timer 인터페이스를사용(uses) 하는모듈에서는위예제와같이 Timer.nc 에 정의되어있는 command 함수를 call 키워드를이용해서호출, 실행시킨다. 이 command 함수들은연결(wiring) 되어있는컴포넌트에구현되어있다. 연결(wiring) 을확인하가위해서는 UTimer 의연결상태를표현하고있는, 컨피규레이션파일을확인해야 한다

18 configuration UApp{ } implementation{ components Main, UTimer, PTimer; } Main.StdControl-> UTimer.StdControl; Main.StdControl-> PTimer.StdControl; UTimer.Timer-> PTimer.Timer; configuration 연결(wiring) 상태는상위컨피규레이션을확인해야한다. 위내용처럼 UTimer 에서사용(uses) 하는 Timer 인터페이스는 PTimer 에서제공(provides) 되었다는연결(wiring) 을해주어야한다. < 그림> 태스크 태스크의정의는위예제처럼 task 키워드로정해주며, 리턴타입은 void 로해준다. 태스크의실행을위해서는 post 키워드를사용하여호출하며, 이태스크의실행은바로실행되지않고, 일반 command 와함수들이실행된후로순서가뒤쪽으로스케줄링된다. 이런태스크의실행은리소스가한정된무선플랫폼에서중요한의미를갖는다. 빠르게실행되는스케줄이정해진동작에비해, 스케줄에자유로운태스크들을 post 키워드를통해플랫폼리소스를효율적으로할당할수있다. atomic 키워드는 atomic { } 범위안에서는하드웨어인터럽트가발생되지않도록정의하는것이며, 이벤트(event) 함수에서전역변수를사용할때, 컴파일러가경고 (warning) 를표시한다. 이경우는컴파일러가변수의race condition 을경고하는것이다. 이벤트함수는언제나발생할수있기때문에, 여러이벤트함수에서동일한변수를처리하면, 변수의변경순서를보장할수없다. 만약, 개발자가변수의race condition을확신하고여러개이벤트의실행에따른변수변화를허용한다면, 변수선언시에 no_race 라는키워드로컴파일러경고(warning) 을제거할수있다

19 4. VMPlayer 개발환경 VMPlayer를이용한 TinyOS 개발환경구축은 Linux, Windows, MACOS 등의다양한플랫폼에서일관된개발환경을구축할수있다는장점때문에, 많이사용되고있다. 그러 나 Linux / Unix 개발환경에익숙하지않은개발자들에겐몇가지기본적인사용방법이제공되어야한다. 이장에서는VMPlayer(2.0 이상) 과TinyOS 개발환경 Fedora 이미지 (Kmote Release) 소프트웨어를이용한설치, 사용방법에대해설명한다. VMPlayer 를설치하고, TinyOS 개발환경 Fedora 이미지를하드디스크에복사한다. 를실행하고의위치를지정한다 VMPlayer, virtual machine configuration file. 위같은창이나타나면를선택한다일반적으로컴퓨터가변경되면나타난다그외의질문들에대해서는최소또는확인을선택한다., Create.. 가리눅스를부팅하는화면이지나가면로그인 메시지를출력하며로그 VMPlayer issue,

20 인을기다린다. issue 메시지를살펴보면, root / tinyos 로로그인할수있음을알수있다. VMPlayer 창으로들어가려면마우스로클릭하고, VMPlayer에서빠져나오려면 ALT-CTRL 키를동시에누른다. 로그인후에는 tinyos를입력하여로그인메시지를볼수 있다. 일반적으로는 startxfce4 를실행하여가벼운윈도우를실행시키며, gnome 환경을실행시키기위해서는 startx 를쉘프롬프트에서실행하면된다. 앞으로는 XFCE 환경을기본으로설명한다. 위와같은그림은윈도우가실행된상태이며좌측최상단의아이콘을이용해서터미, 널을실행시킨다

21 초기에는 TinyOS-1.x 개발환경으로설정되어있다. 위처럼 VMPlayer가동작하고키보 드의제어권이VMPlayer으로넘어간상태에서Kmote를USB 포트에연결하면, 아래그림 처럼 VMPlayer의제목표시줄에 Future Technology Devices USB Device 라는탭이생긴다. 이버튼은토글되며, 눌려있는경우는 VMPlayer 가제어권을갖고, 안눌려있는경우는 Windows 가제어권을갖는다. 아래그림들은 Fedora Linux 상태에서 TinyOS 개발을위해입력한몇개의명령어예제이다. motelist 는현재어떤 USB 포트에 mote 가연결되어있는지를확인할수있으며, make telosb는 telosb 플랫폼에맞게애플리케이션코드를컴파일하라는명령이며, make telosb reisntall,1 bsl,/dev/ttyusb0 는 USB0 포트로컴파일된 telosb 실행바이너리이미지를다운로드하라는명령이다. source /opt/env.scripts/env.opt.tinyos2.x 는 tinyos-2.x 개발환경으로변경하라는명령이다. VMPlayer 를사용하여, 윈도우에서작업할경우에가장문제시되는것이윈도우( 호스

22 트 OS) 와리눅스( 게스트 OS) 간의파일공유이다. Samba 를이용하여, 네트워크공유로윈도우와리눅스간의파일공유하는방법은윈도우즈탐색기에서해당주소를 \ \ 입력하면된다. 리눅스의 IP 주소를얻기위해서는아래그림처럼, 프롬포트쉘에서ifconfig 명령을입력한다. 윈도우에서 \ \ 을입력하면, 아래와같은창이나타난다. 이에 ID, Password를 tinyos / tinyos 로입력하면, 리눅스의 /share 디렉토리에직접접근할수있다

23 - 22 -

24 5. 그외사항들 TinyOS 개발환경 DVD sort=brandname Xubuntos 의경우는아래링크참조 은 VMPlayer 1.03 USB 사용시에에러발생함 FedoraID-root/PASSWORD-tinyos 주요명령어 (shell command) cd, ls, ls -al, mkdir, rmdir, cp, env, env grep TOS, source, grep -rn tinyos *, find./-name good, clear, exit, printenv 윈도우즈에서공유디렉토리설정 공유 directory에 tinyos-1.x source tree copy ifconfig mount.cifs// /1/tinyos/opt/mnt.win umount/opt/mnt.win /etc/profile.d/tinyos.sh 생성 export TOSROOT=/opt/mnt.win/tinyos-1.x export TOSDIR=$TOSROOT/tos export MAKERULES=$TOSROOT/tools/make/Makerules echo $TOSDIR echo $MAKERULES export 윈도우즈에서생성한파일( 스크립트) 가동작을안할경우 envt1 파일을공유중인윈도우즈디렉토리에만들었을경우반드시 dos2unix envt1 이라는명령으로 unix 파일형태로변환시켜줘어야함

25 변환하지않았을때에는 source envt1 이라고해도제대로동작을안함윈도우상에서 envt1을만들고리눅스쉘에서 dos2unix 명령을한번실행해주면됨 make telosb reinstall.2 라는명령을내렸을때, make가동작을안하면 안의모든파일들의모드를 /opt/tinyos-1.x/tools/make 777 예 )chmod 777* 채널, 그룹아이디,RF 세기바꾸기기본적으로는 로변경 /opt/tinyos-1.x/tools/make/makelocal 을고칩니다. Makelocal 내용을아래와같이바꾸면됩니다. 또는/opt/tinyos-1.x/apps/Blink 내에있는Makefile 에추가해줘도됩니다. DEFAULT_LOCAL_GROUP=0x01 PFLAGS +=-DCC2420_DEF_CHANNEL=12 PFLAGS +=-DCC2420_DEF_RFPOWER=31 PFLAGS +=-DDEFAULT_BAUDRATE=38400 채널은 11~26/ RF Power는 1~31 컴파일및다운로드명령 make telosb make telosb reinstall make telosb install make telosb reinstall.1 make telosb install.1 bsl,/dev/ttyusb0 Windows에서공유디렉토리생성 ifconfig 로현재windows의IP 확인 mount.cifs// /tinyos /mnt 파일의경우 삼바이용방법 ifconfig 로현재 chmod 777, dos2unix Linux IP 확인 로상태변경필요

26 윈도우즈의폴더주소표시줄에 \ \ 과같이주소입력 id:tinyos /password:tinyos 문제발생시 vi/etc/samba/smb.conf 에있는 IP Allow 부분에 ifconfig 에서확인하IP가접근가능하도록설정되었는지확인 nesdoc 만드는방법내부의 /opt/tinyos-1.x/apps make telosb docs application 중에한곳에서 cd /opt/tinyos-1.x/doc/nesdoc/telosb firefox/opt/tinyos-1.x/doc/nesdoc/telosb/index.html OscilloscopeRF 의동작센서를 TelosB 에있는빛센서로변경하기 InternalTempC.nc 컴포넌트file 찾는방법: 찾기시작할디렉토리찾고자하는파일이름예, find /-name*internaltempc.nc* HamamatsuC.nc 컴포넌트로변경한다. find { }-name{ } Java 실행방법 - SerialForwarder java net/tinyos/sf/serialforwarder& 실행되는윈도우창에서히변경해준다 - Oscilloscope serial@/dev/ttyusb0:telos 로자신의시스템에맞게정확 java net/tinyos/oscope/oscilloscope& 화면에그래프가안그려지면, scroll 또는 zoom out Y, 버튼을눌러준다. Surge 실행방법 java net/tinyos/surge/mainclass 0x7d& 를이용한와간의파일공유 Samba windows Linux 사용법

27 ifconfig 를쳐서, Linux의IP 확인탐색기에서 \ \ windows id:tinyos,password:tinyos 문제발생시 이라고치면공유폴더가보임 vi/etc/samba/smb.conf 에있는 IP Allow 부분에 ifconfig 에서확인하여현재작동중인IP가접근가능하도록설정되었는지확인 Linux에서 Windows 를마운팅하는방법 ( 되도록이면위에설명한samba 사용을권장합니다.) mount.cifs// /tinyos /mnt TinyOS 2.0 설치방법 TinyOS 의사용을위해서는크게두가지단계로설치를진행하여야한다. 첫번째는개발환경 ( 컴파일러, 리눅스환경등) 의설치이고, 두번째는 TinyOS 소스코드설치이 다. TinyOS 개발환경으로는 Linux 실행환경을위한 Cygwin 설치, 호스트소프트웨어를위한 JAVA 설치, Mote 용소프트웨어를위한컴파일러설치, 환경변수설정이필요하다. TinyOS 코드설치는 CVS( 서버로부터소스코드를다운받아설치하는것이필요하다. 1.Java1.5JDK 설치 Download and install Sun's 1.5 JDK from TinyOS 1.x의 Java 실행환경을위한 Javax Comm API 는 의 files 게시판에서찾아설치한다. 2. Linux 환경설치- Cygwin 설치(Linux 사용하는경우필요없음) 3. Mote 용컴파일러설치

28 TI MSP430 용컴파일러또는에서아래와같이실행하여설치 Cygwin Linux Shell rpm-ivh msp430tools-base cygwin.i386.rpm 만일os 또는dependancy 문제가발생하면아래와같은옵션으로실행 rpm-ivh--ignoreos--nodeps--force msp430tools-base cygwin.i386.rpm 아래rpm 파일들을순서대로설치(Windows 경우5 개, Linux 경우7 개) Tool Windows/Cygwin Linux base msp430tools-base cygwin.i386.rpm msp430tools-base i386.rpm python tools msp430tools-python-tools cygwin.noarch.rpm msp430tools-python-tools noarch.rpm binutils msp430tools-binutils cygwin.i386.rpm msp430tools-binutils i386.rpm gcc msp430tools-gcc cygwin.i386.rpm msp430tools-gcc i386.rpm libc jtag msp430tools-libc cvs cygwin.i386.rpm Not yet available msp430tools-libc cvs i386.r pm msp430tools-jtag-lib cvs i3 86.rpm gdb Not yet available msp430tools-gdb i386.rpm 4. TinyOS Toolchain(nesC, tinyos-tools) rpm-uvh nesc-1.2.8a-1.cygwin.i386.rpm 또는 rpm-uvh--ignoreos--nodeps--force nesc-1.2.8a-1.cygwin.i386.rpm 로설치 nesc: nesc-1.2.8a-1.cygwin.i386.rpm tinyos-tools: tinyos-tools cygwin.i386.rpm 5. Graphviz 설치 nesc document를생성하기위한에서다운로드하여설치한다. 를 Graphviz

29 6. 환경변수설정 cygwin, Linux shell 에서는 export, unset 명령으로환경변수를추가, 제거할수있다. TinyOS의개발환경에작성되어있는 Makefile은아래와같은환경변수가설정되어야컴파일등의작업을수행할수있다. TinyOS 2.0 의경우는아래와같이환경변수가설정되어야한다. TOSROOT=/opt/tinyos-2.x TOSDIR=$TOSROOT/tos MAKERULES=$TOSROOT/support/make/Makerules CLASSPATH=`cygpath-w $TOSROOT/support/s 아/java/tinyos.jar` CLASSPATH="$CLASSPATH;." PATH=/opt/msp430/bin:$PATH 각환경변수를추가하기위해서는아래와같이 export 명령을이용해수행해야한다. export TOSROOT=/opt/tinyos-2.x env grep TOS 같은명령으로현재설정되어있는환경변수를확인할수있다. 환경변수를하나씩매번등록하는것은비효율적이므로, 하나의파일, 예를들면 envt2 라는파일에 6 줄의환경설정내용을작성해놓고, shell 상에서 source envt2 라고실행하면환경변수가모두적용된다. TinyOS 1.0의경우는 TOSROOT=/opt/tinyos-1.x, 로변경해주면된다그리고해당 MAKERULES=/opt/tinyos-1.x/tools/make/Makerules. JAVA. 하는 경로로변경하면된다 [TinyOS Source code Download] TinyOS 환경변수설정에맞게 TinyOS source code 가위치해야한다. 일반적인방법으로는 TinyOS source tree rpm 파일을다운로드받아설치하지만, 항상업데이트되는상태를유지하기위해서는 cvs 도구를이용하여 cvs 서버로부터다운로드받고, 필요시마다업데이트하는것이좋다

30 CVS 클라이언트는 를사용하는것이간편하다. 설치후바탕화면에서마우스오른쪽버튼을누르면아래와같이 checkout 이라는항목이생성된다. pop-up 메뉴에 CVS Protocol은 pserver, Server는 tinyos.cvs.sourceforge.net ( 또는 tinyos.cvs.sf.net), Repository folder 는 /cvsroot/tinyos, user name은 anonymous, module은 tinyos-1.x 또는 tinyos-2.x 로적어주면, tinyos-1.x/ tinyos-2.x 소스코드를다운로드받을수있다

Microsoft PowerPoint - [이론4]TinyOS와NesC [호환 모드]

Microsoft PowerPoint - [이론4]TinyOS와NesC [호환 모드] TinyOS 와 NesC 한백전자 TinyOS 2 TinyOS TinyOS (TOS) = atmega128 에서수행가능한이미지 event-driven 구조 단일스택 TinyOS 의제한사항 커널없음 동적메모리관리없음 가상메모리사용안함 Main 함수에서구동되는 Simple FIFO 스케줄러 3 TinyOS 응용프로그램 TOS application = graph

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

<4D F736F F F696E74202D205BBDC7BDC0345DC1B6B5B5BCBEBCADC1A6BEEE2E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D205BBDC7BDC0345DC1B6B5B5BCBEBCADC1A6BEEE2E BC8A3C8AF20B8F0B5E55D> 조도센서제어 이번장에서는 ZigbeX 에장치되어있는센서들중에서조도센서에대해공부하고, TinyOS의 Oscilloscope 프로그램을통해측정된조도값을확인하는방법에대해알아보도록하겠다. 한백전자 ZigbeX 의조도센서 2 ZigbeX 의조도센서 조도센서 CDS ZigbeX에장치되어있는조도센서 CDS는 Atmega 128(ZigbeX의 8bit CPU) 의 INT0

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기 Mango-IMX6Q mfgtool 을 이용한이미지 Write 하기 http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 BOOTLOADER Jo, Heeseung 부트로더컴파일 부트로더소스복사및압축해제 부트로더소스는웹페이지에서다운로드 /working 디렉터리로이동한후, wget으로다운로드 이후작업은모두 /working 디렉터리에서진행 root@ubuntu:# cp /media/sm5-linux-111031/source/platform/uboot-s4210.tar.bz2 /working

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 개발환경구조및설치순서 JDK 설치 Eclipse 설치 안드로이드 SDK 설치 ADT(Androd Development Tools) 설치 AVD(Android Virtual Device) 생성 Hello Android! 2 Eclipse (IDE) JDK Android SDK with

More information

Chapter #01 Subject

Chapter #01  Subject Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned

More information

4S 1차년도 평가 발표자료

4S 1차년도 평가 발표자료 모바일 S/W 프로그래밍 안드로이드개발환경설치 2012.09.05. 오병우 모바일공학과 JDK (Java Development Kit) SE (Standard Edition) 설치순서 Eclipse ADT (Android Development Tool) Plug-in Android SDK (Software Development Kit) SDK Components

More information

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

DE1-SoC Board

DE1-SoC Board 실습 1 개발환경 DE1-SoC Board Design Tools - Installation Download & Install Quartus Prime Lite Edition http://www.altera.com/ Quartus Prime (includes Nios II EDS) Nios II Embedded Design Suite (EDS) is automatically

More information

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc Visual Studio 2005 + Intel Visual Fortran 9.1 install Intel Visual Fortran 9.1 intel Visual Fortran Compiler 9.1 만설치해서 DOS 모드에서실행할수있지만, Visual Studio 2005 의 IDE 를사용하기위해서는 Visual Studio 2005 를먼저설치후 Integration

More information

6주차.key

6주차.key 6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running

More information

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

More information

1

1 1 2 3 4 5 6 b b t P A S M T U s 7 m P P 8 t P A S M T U s 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Chapter 1 29 1 2 3 4 18 17 16 15 5 6 7 8 9 14 13 12 11 10 1 2 3 4 5 9 10 11 12 13 14 15

More information

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR Configure Kernel Build Environment And kernel & root file system Build 2018-09-27 VLSI Design Lab 1 지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함.

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

슬라이드 1

슬라이드 1 - 1 - 전자정부모바일표준프레임워크실습 LAB 개발환경 실습목차 LAB 1-1 모바일프로젝트생성실습 LAB 1-2 모바일사이트템플릿프로젝트생성실습 LAB 1-3 모바일공통컴포넌트생성및조립도구실습 - 2 - LAB 1-1 모바일프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new Mobile Project 메뉴를선택한다.

More information

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서 커알못의 커널 탐방기 2015.12 이 세상의 모든 커알못을 위해서 개정 이력 버전/릴리스 0.1 작성일자 2015년 11월 30일 개요 최초 작성 0.2 2015년 12월 1일 보고서 구성 순서 변경 0.3 2015년 12월 3일 오탈자 수정 및 글자 교정 1.0 2015년 12월 7일 내용 추가 1.1 2015년 12월 10일 POC 코드 삽입 및 코드

More information

Mango-AM335x LCD Type 커널 Module Parameter에서 변경하기

Mango-AM335x LCD Type 커널 Module Parameter에서 변경하기 Mango-AM335x LCD Type 커널 Module Parameter 에서 변경하기 http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology

More information

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 애플리케이션기초 애플리케이션컴포넌트 액티비티와태스크 Part 1 프로세스와쓰레드 컴포넌트생명주기 Part 2 2 Library Java (classes) aapk.apk (android package) identifiers Resource & Configuration aapk: android

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

슬라이드 1

슬라이드 1 Gradle 1. 도구개요 2. 설치및실행 3. 주요기능 4. 활용예제 1. 도구개요 1.1 도구정보요약 도구명 소개 특징 Gradle (http://www.gradle.org) 소프트웨어빌드자동화도구 라이선스 Apache License v2.0 Gradle 을통해소프트웨어패키지나프로젝트의빌드, 테스팅, 퍼블리슁, 배포등을자동화할수있다. Ant 의유연성과기능을

More information

NTD36HD Manual

NTD36HD Manual Upnp 사용 D7 은 UPNP 를지원하여 D7 의네크워크에연결된 UPNP 기기에별다른설정없이연결하여, 유무선으로네트워크상의연결된 UPNP 기기의콘텐츠를재생할수있습니다. TV 화면의 브라우저, UPNP 를선택하면연결가능한 UPNP 기기가표시됩니다. 주의 - UPNP 기능사용시연결된 UPNP 기기의성능에따라서재생되지않는콘텐츠가있을수있습니다. NFS 사용 D7

More information

슬라이드 1

슬라이드 1 전자정부개발프레임워크 1 일차실습 LAB 개발환경 - 1 - 실습목차 LAB 1-1 프로젝트생성실습 LAB 1-2 Code Generation 실습 LAB 1-3 DBIO 실습 ( 별첨 ) LAB 1-4 공통컴포넌트생성및조립도구실습 LAB 1-5 템플릿프로젝트생성실습 - 2 - LAB 1-1 프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new

More information

USB 케이블만을이용한리눅스 NFS 개발환경 (VirtualBox) 최초작성 : 2010 년 10 월 21 일 작성자 : 김정현 수정내용 최초작성 by 김정현 스크립트추가, 설명보충 by 유형목 1. VritualBox

USB 케이블만을이용한리눅스 NFS 개발환경 (VirtualBox) 최초작성 : 2010 년 10 월 21 일 작성자 : 김정현 수정내용 최초작성 by 김정현 스크립트추가, 설명보충 by 유형목 1. VritualBox USB 케이블만을이용한리눅스 NFS 개발환경 (VirtualBox) 최초작성 : 2010 년 10 월 21 일 작성자 : 김정현 수정내용 2010. 10. 21. 최초작성 by 김정현 2010. 10. 24. 스크립트추가, 설명보충 by 유형목 1. VritualBox 설정 Windows 환경에서 VirtualBox 를설치한다음게스트 OS 로우분투리눅스를사용하는경우,

More information

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java(  혹은   에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을 안드로이드설치및첫번째예제 안드로이드설치 안드로이드개발킷은안드로이드개발자사이트 (http://developer.android.com/) 에서다운로드받을수있으며현재 1.5 버전으로윈도우즈, 맥 OS X( 인텔 ), 리눅스플랫폼패키지가링크되어져있다. 안드로이드개발킷을설치하기위해서는다음과같은시스템환경이갖추어져있어야한다. 플랫폼 Windows Mac Linux 지원환경

More information

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 Outline n n n n n n 보드개요보드연결필수패키지, Tool-Chain 설치 Kernel, file system build Fastboot 및 Tera Term설치 Kernel, file system 이미지전송및설치 - 2 - Young-Jin Kim X-Hyper320TKU

More information

JDK이클립스

JDK이클립스 JDK 와이클립스설치 A. JDK 다운로드, 설치및환경설정 지금부터 JDK를다운로드받아설치하고 JDK를윈도우에서활용할수있도록환경을설정하는전과정을소개한다. 다운로드 www.oracle.com 사이트에접속하여 Downloads 메뉴를선택한후 [ 그림 1] 과같이 "Java for Developers" 를클릭한다. [ 그림 1] www.oracle.com 사이트

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 공개 SW 솔루션설치 & 활용가이드 시스템 SW > 가상화 제대로배워보자 How to Use Open Source Software Open Source Software Installation & Application Guide CONTENTS 1. 개요 2. 기능요약 3. 실행환경 4. 설치및실행 5. 기능소개 6. 활용예제 7. FAQ 8. 용어정리 - 3-1.

More information

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot) 1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다. 1.1. 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot) 만별도로필요한경우도있어툴체인설치및설정에대해알아봅니다. 1.1.1. 툴체인설치 다음링크에서다운받을수있습니다.

More information

Mango-E-Toi Board Developer Manual

Mango-E-Toi Board Developer Manual Mango-E-Toi Board Developer Manual http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document

More information

/chroot/lib/ /chroot/etc/

/chroot/lib/ /chroot/etc/ 구축 환경 VirtualBox - Fedora 15 (kernel : 2.6.40.4-5.fc15.i686.PAE) 작동 원리 chroot유저 ssh 접속 -> 접속유저의 홈디렉토리 밑.ssh의 rc 파일 실행 -> daemonstart실행 -> daemon 작동 -> 접속 유저만의 Jail 디렉토리 생성 -> 접속 유저의.bashrc 의 chroot 명령어

More information

Chapter 1

Chapter 1 3 Oracle 설치 Objectives Download Oracle 11g Release 2 Install Oracle 11g Release 2 Download Oracle SQL Developer 4.0.3 Install Oracle SQL Developer 4.0.3 Create a database connection 2 Download Oracle 11g

More information

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

More information

슬라이드 제목 없음

슬라이드 제목 없음 < > Target cross compiler Target code Target Software Development Kit (SDK) T-Appl T-Appl T-VM Cross downloader Cross debugger Case 1) Serial line Case 2) LAN line LAN line T-OS Target debugger Host System

More information

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information

Microsoft Word ARM_ver2_0a.docx

Microsoft Word ARM_ver2_0a.docx [Smart]0703-ARM 프로그램설치 _ver1_0a 목차 1 윈도우기반으로리눅스컴파일하기 (Cygwin, GNU ARM 설치 )... 2 1.1 ARM datasheet 받기... 2 1.2 Cygwin GCC-4.0 4.1 4.2 toolchain 파일받기... 2 1.3 Cygwin 다운로드... 3 1.4 Cygwin Setup... 5 2 Cygwin

More information

untitled

untitled Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.

More information

KEY 디바이스 드라이버

KEY 디바이스 드라이버 KEY 디바이스드라이버 임베디드시스템소프트웨어 I (http://et.smu.ac.kr et.smu.ac.kr) 차례 GPIO 및 Control Registers KEY 하드웨어구성 KEY Driver 프로그램 key-driver.c 시험응용프로그램 key-app.c KEY 디바이스드라이버 11-2 GPIO(General-Purpose Purpose I/O)

More information

C 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12

More information

Windows Server 2012

Windows Server  2012 Windows Server 2012 Shared Nothing Live Migration Shared Nothing Live Migration 은 SMB Live Migration 방식과다른점은 VM 데이터파일의위치입니다. Shared Nothing Live Migration 방식은 Hyper-V 호스트의로컬디스크에 VM 데이터파일이위치합니다. 반면에, SMB

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다 공유기사용환경에서 MNC-V100 환경설정하기 다음설명은 AnyGate GW-400A (Http://www.anygate.co.kr) 를사용하는네트워크환경에서 MNC-V100 을연결하여사용하는법을설명합니다. 공유기내부네트워크환경설정공유기를사용하는환경에서공유기의설정을아래그림과같이설정하시면 MNC-V100의설정을변경하지않아도모비캠과연결할수있습니다. ( 공유기의환경을변경하기어려운경우에는

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

서현수

서현수 Introduction to TIZEN SDK UI Builder S-Core 서현수 2015.10.28 CONTENTS TIZEN APP 이란? TIZEN SDK UI Builder 소개 TIZEN APP 개발방법 UI Builder 기능 UI Builder 사용방법 실전, TIZEN APP 개발시작하기 마침 TIZEN APP? TIZEN APP 이란? Mobile,

More information

untitled

untitled Embedded System Lab. II Embedded System Lab. II 2 RTOS Hard Real-Time vs Soft Real-Time RTOS Real-Time, Real-Time RTOS General purpose system OS H/W RTOS H/W task Hard Real-Time Real-Time System, Hard

More information

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO Windows 7 설치및 PCIE RAID 설정정보 DK173 초판 11월 2016 A. Windows 7 및 USB 드라이버설치 칩셋사양에따라 Windows 7 설치중에 USB 키보드 / 마우스를사용하려면시스템에서 USB 드라이버를사전로드해야합니다. 이절에서는 USB 드라이버사전로드방법과 Windows 7 설치방법에대해서설명합니다. 방법 1: SATA ODD

More information

Install stm32cubemx and st-link utility

Install stm32cubemx and st-link utility STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7

More information

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

More information

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어서가장중요한부분이라고도할수있기때문입니다. 1. 새로운메크로생성 새메크로만들기버튺을클릭하여파일을생성합니다. 2. 메크로저장 -

More information

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터 운영체제실습 Raspbian 설치 2017. 3 표월성 wspyo74@naver.com cherub.sungkyul.ac.kr 목차 Ⅰ. 설치 1. 라즈비안 (Raspbian 설치 ) 2. 설치후, 설정 설정사항 Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로

More information

C. KHU-EE xmega Board 에서는 Button 을 2 개만사용하기때문에 GPIO_PUSH_BUTTON_2 과 GPIO_PUSH_BUTTON_3 define 을 Comment 처리 한다. D. AT45DBX 도사용하지않기때문에 Comment 처리한다. E.

C. KHU-EE xmega Board 에서는 Button 을 2 개만사용하기때문에 GPIO_PUSH_BUTTON_2 과 GPIO_PUSH_BUTTON_3 define 을 Comment 처리 한다. D. AT45DBX 도사용하지않기때문에 Comment 처리한다. E. ASF(Atmel Software Framework) 환경을이용한프로그램개발 1. New Project Template 만들기 A. STK600 Board Template를이용한 Project 만들기 i. New Project -> Installed(C/C++) -> GCC C ASF Board Project를선택하고, 1. Name: 창에 Project Name(

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Deep Learning 작업환경조성 & 사용법 ISL 안재원 Ubuntu 설치 작업환경조성 접속방법 사용예시 2 - ISO file Download www.ubuntu.com Ubuntu 설치 3 - Make Booting USB Ubuntu 설치 http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/

More information

01장

01장 뇌를자극하는 Windows Server 2012 R2 부록 NAS4Free 의설치와환경설정 네트워크상에서저장공간이제공되는 NAS(Network Attached Storage) 환경을 VMware에서구성해야한다. 이책에서는그중 Unix 계열의운영체제이며무료로사용할수있는 NAS4Free 운영체제를설치하고사용할것이다. 결국지금설치하는 NAS4Free는쿼럼디스크와클러스터디스크를제공하는것이목적이다.

More information

CODESYS 런타임 설치과정

CODESYS 런타임 설치과정 CODESYS 런타임설치과정 CODESYS Control RTE / SoftMotion RTE Setup Web: www.altsoft.kr E-mail: altsoft@altsoft.kr Tel: 02-547-2344 목 차 CODESYS 런타임 - Control RTE, SoftMotion RTE... 2 다운로드및설치과정... 2 CODESYS EtherCAT

More information

untitled

untitled 시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Network Programming Jo, Heeseung Network 실습 네트워크프로그래밍 멀리떨어져있는호스트들이서로데이터를주고받을수있도록프로그램을구현하는것 파일과는달리데이터를주고받을대상이멀리떨어져있기때문에소프트웨어차원에서호스트들간에연결을해주는장치가필요 이러한기능을해주는장치로소켓이라는인터페이스를많이사용 소켓프로그래밍이란용어와네트워크프로그래밍이랑용어가같은의미로사용

More information

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드] 리눅스 설치 Vmware를 이용한 Fedora Core 8 설치 소프트웨어실습 1 Contents 가상 머신 실습 환경 구축 Fedora Core 8 설치 가상 머신 가상 머신 가상 머신의 개념 VMware의 설치 VMware : 가상 머신 생성 VMware의 특징 실습 환경 구축 실습 환경 구축 Fedora Core 8 설치 가상 머신의 개념 가상 머신 (Virtual

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

1) 인증서만들기 ssl]# cat >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

1) 인증서만들기 ssl]# cat   >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키 Lighttpd ( 멀티도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 1) 인증서만들기 [root@localhost ssl]# cat www.ucert.co.kr.key www.ucert.co.kr.crt >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat

More information

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi 소프트웨어공학 Tutorial #2: StarUML Eun Man Choi emchoi@dgu.ac.kr Contents l StarUML 개요 l StarUML 소개및특징 l 주요기능 l StarUML 화면소개 l StarUML 설치 l StarUML 다운 & 설치하기 l 연습 l 사용사례다이어그램그리기 l 클래스다이어그램그리기 l 순서다이어그램그리기 2

More information

Microsoft Word - 임베디드월드_WindowsEmbeddedCompact7_rev

Microsoft Word - 임베디드월드_WindowsEmbeddedCompact7_rev 글 : 김재형팀장, MDS테크놀로지 ES사업부 SE팀 www.mdstec.com 진보된기술과화려한사용자환경, 다양한응용프로그램들로무장한 스마트폰쓰나미 가몰려오고있다. 이쓰나미의영향은단지휴대용통신기기에만미치지않고, 주저하던임베디드시스템에도막대한영향을끼치고있다. 하지만임베디드시스템개발자와사용자라면누구나이 스마트폰쓰나미 의시초가임베디드시스템이었음을인정할것이다. 수많은미래지향적아이디어들을현실화하면서새로운

More information

Microsoft Word - Armjtag_문서1.doc

Microsoft Word - Armjtag_문서1.doc ARM JTAG (wiggler 호환 ) 사용방법 ( IAR EWARM 에서 ARM-JTAG 로 Debugging 하기 ) Test Board : AT91SAM7S256 IAR EWARM : Kickstart for ARM ARM-JTAG : ver 1.0 ( 씨링크테크 ) 1. IAR EWARM (Kickstart for ARM) 설치 2. Macraigor

More information

Lab 3. 실습문제 (Single linked list)_해답.hwp

Lab 3. 실습문제 (Single linked list)_해답.hwp Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.

More information

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL:   E-M Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: http://www.olivetech.co.kr E-Mail: tech@olivetech.co.kr TEL: 031-726-4217 FAX: 031-726-4219

More information

RVC Robot Vaccum Cleaner

RVC Robot Vaccum Cleaner RVC Robot Vacuum 200810048 정재근 200811445 이성현 200811414 김연준 200812423 김준식 Statement of purpose Robot Vacuum (RVC) - An RVC automatically cleans and mops household surface. - It goes straight forward while

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

<4D F736F F F696E74202D20322DBDC7BDC3B0A320BFEEBFB5C3BCC1A6>

<4D F736F F F696E74202D20322DBDC7BDC3B0A320BFEEBFB5C3BCC1A6> 컴퓨터시스템구성 2. 실시간운영체제 1 2 운영체제의주요기능 프로세스관리 (Process management) 메모리관리 (Memory management) 인터럽트핸들링 (Interrupt handling) 예외처리 (Exception handling) 프로세스동기화 (Process synchronization) 프로세스스케쥴링 (Process scheduling)

More information

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 1 Tizen 실습예제 : Remote Key Framework 시스템소프트웨어특론 (2014 년 2 학기 ) Sungkyunkwan University Contents 2 Motivation and Concept Requirements Design Implementation Virtual Input Device Driver 제작 Tizen Service 개발절차

More information

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오.

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오. 메 뉴 다음 사항을 꼭 확인하세요! --------------------------------- 2p 안전을 위한 주의 사항 --------------------------------- 3p 구성품 --------------------------------- 4p 각 부분의 명칭 --------------------------------- 5p 제품의 규격

More information

YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결

YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결 YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결해주어 RPM 패키지설치시자동적으로의존성문제를 처리하여 RPM 패키지를안전하게설치, 제거, 업그레이드등의작업을스스로하는도구 YUM 설정 (/etc/yum.conf) [main]

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드] Google Map View 구현 학습목표 교육목표 Google Map View 구현 Google Map 지원 Emulator 생성 Google Map API Key 위도 / 경도구하기 위도 / 경도에따른 Google Map View 구현 Zoom Controller 구현 Google Map View (1) () Google g Map View 기능 Google

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

슬라이드 1

슬라이드 1 Subclipse 1. 도구개요 2. 설치및실행 3. 주요기능 4. 활용예제 1. 도구개요 도구명 Subclipse (http://subclipse.tigris.org/) 라이선스 Eclipse Public License v1.0 소개 Subversion( 이하 svn) 용 Eclipse 플러그인 SVN 을만든 Tigris.org 에서만든클라이언트툴 Java

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

IRISCard Anywhere 5

IRISCard Anywhere 5 이 빠른 사용자 가이드는 IRISCard Anywhere 5 및 IRISCard Corporate 5 스캐너의 설치와 시작을 도와 드립니다. 이 스캐너와 함께 제공되는 소프트웨어는: - Cardiris Pro 5 및 Cardiris Corporate 5 for CRM (Windows 용) - Cardiris Pro 4 (Mac OS 용) Cardiris 의

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

Microsoft Word - src.doc

Microsoft Word - src.doc IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...

More information

Microsoft Word - Network Programming_01.docx

Microsoft Word - Network Programming_01.docx 1. Environment 4/35 1. Environment 본장에서는기본적으로네트워크프로그래밍을수행하기위한기본적인환경을구축하는실습을다루도록하겠다. 본실습에서는기본적으로프로그래밍플랫폼인리눅스의서비스중하나인 Samba Server와프로그래밍을구조적으로할수있게도와주는 Source Insight를사용하는방법을다루도록한다. 1.1 Samba Server 를통한 Linux

More information

PCServerMgmt7

PCServerMgmt7 Web Windows NT/2000 Server DP&NM Lab 1 Contents 2 Windows NT Service Provider Management Application Web UI 3 . PC,, Client/Server Network 4 (1),,, PC Mainframe PC Backbone Server TCP/IP DCS PLC Network

More information

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx) w w w. g b t e c. c o. k r 6 안드로이드 App 적용하기 115 1. 안드로이드개요 모바일 OS 의종류 - 스마트폰 : 스마트폰운영체제탑재 애플의 IOS(iPhone OS) - 아이폰, 아이패드, 아이팟터치 구글의안드로이드 - Nexus, 갤럭시 A, S, 모토로이, 시리우스,... MS 의윈도우모바일 ( 윈도우폰 7) - 옴니아 2,

More information

<283130C1D6294C454420B9D720BCBEBCAD20C1A6BEEE2E687770>

<283130C1D6294C454420B9D720BCBEBCAD20C1A6BEEE2E687770> 실험 06 LED 및센서제어 < 실험목표 > LED 제어컴포넌트와 Timer 컴포넌트를응용하여 LED 의 on/off 를모스부호화하는방법을알아본다. 장비에장치되어있는조도센서에대해살펴보고, TinyOS 의 Oscilloscope 프로그램을통해측정된조도값을확인하는방법을알아본다. SHT11 센서를이용하여온도및습도값을측정하고, 그결과를시리얼통신을통해 PC 로전달하는방법을알아본다.

More information

Microsoft PowerPoint - 10Àå.ppt

Microsoft PowerPoint - 10Àå.ppt 10 장. DB 서버구축및운영 DBMS 의개념과용어를익힌다. 간단한 SQL 문법을학습한다. MySQL 서버를설치 / 운영한다. 관련용어 데이터 : 자료 테이블 : 데이터를표형식으로표현 레코드 : 테이블의행 필드또는컬럼 : 테이블의열 필드명 : 각필드의이름 데이터타입 : 각필드에입력할값의형식 학번이름주소연락처 관련용어 DB : 테이블의집합 DBMS : DB 들을관리하는소프트웨어

More information

Abstract View of System Components

Abstract View of System Components Operating System 4 주차 - System Call Implementation - Real-Time Computing and Communications Lab. Hanyang University jtlim@rtcc.hanyang.ac.kr yschoi@rtcc.hanyang.ac.kr shpark@rtcc.hanyang.ac.kr Contents

More information

네이버블로그 :: 포스트내용 Print VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52 /carrena/ VMware 에서 l

네이버블로그 :: 포스트내용 Print VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52   /carrena/ VMware 에서 l VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52 http://blog.naver.com /carrena/50163909320 VMware 에서 linux 설치하기 linux 는다양한버전이존재합니다. OS 자체가오픈소스이기때문에 redhat fedora, 우분투, centos 등등 100 가지가넘는버전이존재함

More information

Microsoft Word - CooCox

Microsoft Word - CooCox 1.3 CooCox CoIDE 프로그램설치 오픈소스 GCC 환경을제공하는사이트에알아보면 1) Yagarto ; http: //www.yagarto.de/ 2) WinARM ; http: ://gandalf.arubi.uni-kl.de/avr_projects/arm_projects/index_cortex.html 3) GNUARM ; http://www.gnuarm.com/

More information

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용

More information

Microsoft PowerPoint App Fundamentals[Part1].pptx

Microsoft PowerPoint App Fundamentals[Part1].pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 2 HangulKeyboard.apkapk 파일을다운로드 안드로이드 SDK 의 tools 경로아래에복사한후, 도스상에서다음과같이 adb 명령어수행 adb install HangulKeyboard.apk 이클립스에서에뮬레이터를구동 에뮬레이터메인화면에서다음과같이이동 메뉴버튼 설정 언어및키보드

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2. 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2. 3Rabbitz Book 애플리케이션파일다운로드하여압축파일을풀고복사합니다. 3. 3Rabbitz Book 실행합니다.

More information

Microsoft PowerPoint - 03-Development-Environment-2.ppt

Microsoft PowerPoint - 03-Development-Environment-2.ppt 개발환경 2 임베디드시스템소프트웨어 I 차례 부트로더의기능, 컴파일방법 커널의기능, 컴파일방법 파일시스템의기능, 생성방법 Host-KIT 네트워크연결방법 (Bootp, TFTP, NFS) 개발환경 2 2 부트로더의기능 하드웨어초기화 CPU clock, Memory Timing, Interrupt, UART, GPIO 등을초기화 커널로드 커널이미지를 flash

More information

페도라 코어 5 설치 가이드

페도라 코어 5 설치 가이드 목 차 Fedora Core 6 다운받기 2 Fedora Core 6 설치 2 커널업데이트하기 22 VI 편집기사용 27 임베디드개발을위한환경구축 30 xinetd 설치 31 tftp 설치 31 sharutils 설치 33 minicom 환경설정 33 NFS 설정 36 gcc 컴파일러설치 (gcc-2.9.53) 37 HANBACK Electronics Co.,Ltd

More information

임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 시스템호출개요 리눅스에서는사용자공간과커널공간을구분 사용자프로그램은사용자모드, 운영체제는커널모드에서수행 커널공간에대한접근은커널 ( 특권, priviledged) 모드에서가능 컴퓨팅자원 (CPU, memory, I/O 등 ) 을안전하게보호 커널수행을안전하게유지

More information