(Microsoft PowerPoint - Device Driver [\310\243\310\257 \270\360\265\345])

Size: px
Start display at page:

Download "(Microsoft PowerPoint - Device Driver [\310\243\310\257 \270\360\265\345])"

Transcription

1 Device Driver

2 커널프로그램 Kernel program 목차 Kernel program 유의사항 Kernel module 디바이스드라이버 Character/Block device driver Device driver 구조 Device driver 작성절차및 module 등록 LED 디바이스드라이버

3 Kernel Program (1) 커널프로그램과응용프로그램과비교 : 실행 (execution) 방식의차이 응용프로그램 : 순차적 (sequential) 프로그램 커널프로그램 : 커널에서제공하는 system call 혹은 interrupt에의한비동기적프로그램 ( 응용프로그램에서호출 ) system call interrupt 응용프로그램 커널프로그램

4 Kernel Program (2) Library 응용프로그램 : 대부분의 library 를링크하여사용가능 커널프로그램 커널에서 export 한 function 을사용 printf( ) printk( ), malloc( ) kmalloc( ) Address space 응용프로그램과커널프로그램은서로다른어드레스영역을사용하여각각의프로그램코드에영향을주지않음. 커널공간 1GByte 사용자공간 3GByte

5 Kernel Program (3) User space 와 kernel space 응용프로그램 : 사용자공간에서실행되며직접적으로하드웨어장치나메모리에접근불가능 커널프로그램 : 커널공간에서실행되며, 직접적으로하드웨어장치나메모리에접근가능 Name space pollution 응용프로그램 : 현재개발하는프로그램에서만함수와변수이름등을구별 커널프로그램 : 현재개발중인모듈외에도커널전반적인함수와변수의이름에충돌하지않도록프로그래밍

6 커널프로그램주의사항 (1) Library 응용프로그램에서사용하던 stdio.h 와같은헤더파일의중복성유의 커널에서포함하고있는헤더파일을사용 : linux rmk4- pxa2-empx1/include/ Namespace pollution 외부파일과링크를하지않을모든 symbol을 static으로선언혹은외부파일과링크할 symbol table에등록 EXPORT_NO_SYMBOLS; EXPORT_SYMOL(name); 전역변수는잘정의된 prefix를사용 : sys_open() 부동소수형수치연산 커널프로그램에서부동소수형수치연산을수행되지않는관계로유의

7 커널프로그램주의사항 (2) Address space 커널이사용하는 stack 의크기는제한 Interrupt handler 도동일한스택을사용하므로큰배열을사용 recursion 이많이일어나지않도록주의 응용프로그램과 data 를주고받기위해 (call by reference) 특별한함수를사용 Fault Handling 커널은하드웨어접근에어떠한제한이없기때문에커널에서오류는시스템에치명적인결과를발생 함수호출등의작업에는에러코드를검사해주고처리

8 커널프로그램함수 커널인터페이스함수 커널프로그램은일반적인라이브러리를사용하지못하고커널이 export 해준함수만을사용할수있다. 커널인터페이스함수분류 : 커널에서제공하는함수중커널프로그램에서자주사용하는함수 Port I/O Interrupt Memory Kernel message Device driver register 커널모듈프로그램

9 Kernel Module Monolithic 커널 : 사용하고자하는모듈을로딩하여사용 임베디드시스템에이용함에따라시스템에필요한기능을적재하여활용 다양한인터페이스를타켓보드의목적와구성형태에따라입출력디바이스를설정 커널설정시모듈을설치가능 : 정적로딩 커널이실행되는중간에모듈을설치 : 동적로딩 사용자는시스템호출함수 (system function call) 를이용 디바이스드라이버모듈 /proc/modules, include/linux/init.h, include/linux/ module.h, kernel/ksyms.c, /drivers 커널내의별도의데이터구조 하나의파일에구현된함수가다른파일에있는데이터를참조하는경우, 주소결정에어려움 : 가상메모리접속방식

10 Kernel Module Interface (1): reading 디바이스 I/O 장치와데이터전송 Reading functions unsigned inb(unsigned port) : port 에서 1byte reading unsigned inw(unsigned port) : port 에서 2byte reading unsigned inl(unsigned port) : port 에서 4byte reading void insb(unsignedport, void *addr, unsigned long count): port 에서 count bytes 를읽어서메모리의 address 부터저장 void insw(unsignedport, void *addr, unsigned long count): port 에서 16bit * count 만큼읽어서메모리의 address 부터저장 void insl(unsignedport, void *addr, unsigned long count): port 에서 32bit * count 만큼읽어서메모리의 address 부터저장

11 Kernel Module Interface (2): writing Writing functions unsigned outb(charvalue, unsigned port) : port 에 1byte value 를 write unsigned outw(shortintvalue, unsigned port) : port 에 2byte value 를 write unsigned outl(longintvalue, unsigned port) : port 에 4byte value를 write void outsb(unsignedport, void *addr, unsigned long count): memory 의 address 에서부터 count bytes 를읽어서 port 에 write void outsw(unsignedport, void *addr, unsigned long count): memory 의 address 에서부터 count * 16bit 를읽어서 port 에 write void outsl(unsignedport, void *addr, unsigned long count): memory 의 address 에서부터 count * 32bit 를읽어서 port 에 write

12 Kernel Module Interface (3): Interrupt 인터럽트의설정및처리에관한함수 (or 매크로 ) cli() / sti() : 인터럽트금지및가능 save_flags(unsigned long flag), restore_flags(unsig ned long flag): status register의내용을저장하고복원, save_flags(), restore_flags() 이두매크로는같은함수안에존재 intrequst_irq(unsigned int irq, void (*handler)(int), unsigned long flags, const char *device): 커널로부터 IRQ 를요청하고, IRQ 에대한 interrupt handler 를커널에등록 void free_irq(unsigned int irq) : request_irq() 에서획득한 IRQ 를반납

13 Memory Function(1): memory allocation Kernel 에서동적메모리를할당할때사용하는함수 get_free_page(), free_page() 한페이지의메모리를할당하고해제하는데사용 kmolloc(), kfree() 물리적으로연속된메모리를할당하고해제하는데사용 한번에 128kb 까지할당가능 vmalloc(), vfree() 가상공간에서연속적인메모리를할당하고해제하는데사용 kmolloc 보다큰메모리할당가능

14 Memory Space 리눅스시스템에서는 4Gbyte 메모리의전체주소영역을사용 커널공간영역 (1Gbytes), 사용자공간영역 ( 응용프로그래밍, 3Gbytes) PAGE_OFFSET(0xc ) 분할기준을정의하여커널공간영역은지역 offset 위에위치 커널과사용자영역 0x PAGE_OFFSET: 0xc 커널공간 1GByte 사용자공간 3GByte 0xFFFF FFFF

15 Virtual Memory Map: EMPOS-II Memory Map: /linux rmk4-pxq2-empx1/arch/arm/machpxa/empos_x255.c /* virtual physical length domain r w c b */ {0xf , 0x , 0x , DOMAIN_IO, 0, 1, 0, 0}, /* empos status flash block*/ {0xf , 0x , 0x , DOMAIN_IO, 0, 1, 0, 0 }, /* PCMCIA status */ {0xf , 0x , 0x , DOMAIN_IO, 0, 1, 0, 0 }, /* nport */ {0xf , 0x , 0x , DOMAIN_IO, 1, 1, 0, 0}, /* Segment */ {0xf , 0x , 0x , DOMAIN_IO, 1, 1, 0, 0}, /* Segment */ {0xf , 0x , 0x , DOMAIN_IO, 0, 1, 0, 0}, /* P button */ {0xf , 0x , 0x , DOMAIN_IO, 1, 1, 0, 0}, /* LED */ {0xf , 0x , 0x , DOMAIN_IO, 1, 1, 0, 0}, /* Text LED */ {0xf , 0x , 0x , DOMAIN_IO, 0, 1, 0, 0}, /* Primary Ethernet */ { 0xf , 0x , 0x , DOMAIN_IO, 0, 1, 0, 0 }, /* Secondary Ethernet*/

16 Memory Function(2): sharing 사용자공간과커널공간사이에데이터를공유하기위한함수 get_user(void *x, const void *addr) *addr 의값을커널영역인 x 로 sizeof(addr) 만큼복사 put_user(void *x, const void *addr) *x 의값을 user 영역인 addr 로 sizeof(addr) 만큼복사 copy_to_user(void *to, void *from, unsigned long size) form 주소에서 to 의주소 ( 사용자공간 ) 까지 size 만큼주소의값을복사 copy_from_user(void *to, void *from, unsigned long size) form 주소에서 to 의주소 ( 커널공간 ) 까지 size 만큼주소의값을복사

17 Kernel Message Standard out 으로메시지를출력 : printk() printk(constchar *fmt,.) printf() 의커널버전 printk(log_level_ message) LOG_LEVEL:KERN_EMERG, KERN_ALERT, KERN_ERR,KERN_WARNING, KER_INFO, KERN_DEBUG Example printk( <1>Hello, World ); printk( kernel value = 0x%X\n,value); printk(kern_warning warning \n );

18 Device Driver Register 디바이스드라이버를커널에등록하는함수 int register_chrdev(unsigned int major, const char *name, struct file_operations *fops); 문자디바이스드라이버를커널에 (chrdev[major]) 등록 int unregister_chrdev(unsigned int major, const char *name); 커널 (chrdevs[major]) 에등록되어있는문자디바이스드라이버를제거 int register_blkdev(unsigned int major, const char *name, struct file_operations *fops); int unregister_blkdev(unsigned int major, const char *name);

19 디바이스 Device Driver 네트워크어댑터, LCD 디스플레이, PCMCIA, audio, 터미널, 키보드, 하드디스크, 플로피디스크, 프린터등의주변장치 디바이스의구동에필요한프로그램 : 디바이스드라이버가필수적으로요구 Device Driver 실제장치를추상화시켜사용자프로그램이정형화된인터페이스를통해디바이스를접근할수있도록해주는프로그램 디바이스관리에필요한정형화된인터페이스구현에요구되는함수와자료구조의집합체 표준적으로동일서비스제공을목적으로커널의일부분으로내장 응용프로그램이 H/W 를제어할수있도록인터페이스제공 하드웨어독립적인프로그램을작성을가능

20 Linux Device Driver (1) 사용자관점에서의디바이스드라이버 사용자는디바이스자체에대한자세한정보를알필요없음 Device는하나의파일로인식됨 File( 디바이스파일 ) 에대한접근을통하여 real device에접근가능 User Program Device file. VFS Device Driver Real Device

21 Linux Device Driver (2) 리눅스에서디바이스 Linux 에서 device 는특별한하나의파일처럼취급되고, access 가가능 : 사용자는 file operation 을적용할수있음 각디바이스는 major number 와 minor number 로구분 Device Driver 종류 Character device driver Block device driver Network device driver

22 Character Device Driver 문자디바이스의특징 자료의순차성을지닌장치 buffer cache 를사용하지않음 장치의 raw data 를사용자에게제공 Terminal, Serial/Parallel, Keyboard, Sound Card, Scanner, Printer 리눅스에서의문자디바이스 : /dev crw-r--r-- 1 root root 11, 1 Oct touch1 crw-r--r-- 1 root root 204, 5 Oct ttysa0 crw-r--r root root 204, 6 Oct ttysa1 crw-r--r-- 1 root root 180, 0 Oct usb

23 Block Device Driver Block device 특징 Random access 가능 블록단위의입출력이가능한장치 버퍼 cache 에의한내부장치표현 파일시스템에의해 mount 되어관리되는장치 디스크, RAM Disk, CD-ROM 등 리눅스에서 block device brw-r root 1, 0 Oct ram0 brw-r--r-- 1 root 24 1, 1 Oct mmca1 brw-r--r-- 1 root 3 1, 0 Oct mtdblock0 brw-r--r-- 1 root 3 1, 1 Oct mtdblock1

24 Network Device Driver Network device 특징 대응하는장치파일이없음 네트워크통신을통해패킷을송수신할수있는장치 응용프로그램과의통신은표준파일의 system call 대신 socket(), bind() 등의시스템콜사용 Ethernet, PPP, ATM, ISDN device driver

25 Major/Minor Number (1) Major number( 주번호 ) 커널에서디바이스드라이버를구분 / 연결하는데사용 같은 Device 의종류를지칭, 1Byte (0~255 사이의값 ) Minor number( 부번호 ) 디바이스드라이버내에서장치를구분하기위해사용 각 Device 의부가적인정보를나타냄, 2Byte ( 부번호 ) 하나의디바이스드라이버가여러개의디바이스제어가능 $ ls -al /dev/ttys* crw root root 4, 64 Jan 1 00 : 00 ttys0 crw root root 4, 65 Oct ttys1 crw-r--r-- 1 root root 4, 74 Oct ttys10 crw-r--r-- 1 root root 4, 75 Oct ttys11

26 Major/Minor Number (2) 커널에서논리적인디바이스와 Major /Minor Number 를이용하여접근 Major Number 리눅스커널에서사용할각각의디바이스드라이버와연관, 숫자를할당 까지기본표준고정장치에할당 : 예 ) 21: SCSI, 3: IDE HDD include/linux/major.h, /proc/devices Minor Number 16 비트숫자로할당하여동일한디바이스드라이버를사용하는서로다른장치를구분 : 상위 8 비트는디바이스타입, 하위 8 비트는서로다른디바이스를설정 예 ) IDE Hard Disk 시스템에서하드디스크드라이버 Major number 3, 1 st Hard Disk Minor number 0, 2 nd Hard Disk Minor number 1

27 Linux Device Driver 구조 Application area Application System Call Interface VFS Kernel area Buffer Cache Network Subsystem Char Device Driver Block D/D Network D/D Device Interface Hardware Hardware

28 Typical module type (1) 모듈형태 커널에서수행될때필요한헤더파일 모듈에필요한헤더파일 매크로정의 : module_init(), module_exit() 모듈이설치될때초기화를수행하는코드 모듈이제거될때반환작업을수행하는코드

29 Typical module type (2) 기본적인디바이스드라이버의형태 #include <linux/kernel.h> #include <linux/module.h> #include <linux/init.h> int device_open( ) { } int device_release( ) { } ssize_t device_write( ) { } ssize_t device_read( ) { } static struct file_operations device_fops = { read : device_read, write : device_write, open : device_open, release : device_relese,}; int init_module(void) { } void cleanup_module(void) { } Header Files Function Prototypes File Operation 모듈설치시초기화수행모듈제거시반환작업수행

30 Character Device Driver: Basic init_module() 디바이스드라이버등록 메모리할당및초기화 cleanup_module() 디바이스드라이버제거 할당된 I/O memory 영역반환 open(), release() 디바이스카운트증가및감소 usage 카운트체크및증가감소 read(), write(), ioctl(), function 디바이스드라이버의목적에따른일을함 사용자공간과커널공간의테이타전송 메모리에값을쓰거나읽음

31 Device Driver 작성절차 1. 프로그램소스코딩 2. 디바이스드라이버모듈적재 : insmod (major number 값은커널에서할당 ) 3. mknod 을이용하여할당된 major number 로디바이스를등록 4. 커널버퍼디바이스드라이버의등록유무확인 : lsmod 5. 커널버퍼의오퍼레이션을수행 : cat & redirection 6. 디바이스드라이버모듈해지 : rmmod

32 Insert/Remove module /sbin/inmod [option] [-o module_name] object_file /sbin/rmmod [opion] module_name /sbin/lsmod or /proc/modules 확인 inmod init_module( ) register( ) Core Kernel Module Capability( ) printk( ) rmmod cleanup_ module( ) unregister( )

33 Kernel Action 1. 커널의주소공간에새로운모듈이추가 : create_module( ) 2. get_kernel_syms( ) 커널함수가모듈이참조하고있는커널내데이터위치를탐색 3. create_module( ) 함수가모듈을위한메모리공간을할당 4. init_module( ) 시스템호출을통해모듈이커널에적재되고, 모듈안에서 export되는심볼들이다른모듈에서사용할수있도록커널내부에서정의 5. insmod 명령을수행하는프로세스가새로이적재된모듈안의함수를호출

34 Make module 컴파일환경설정 커널모듈은독립적으로실행하는것이아님 : 커널에링크되어실행되기때문에 c flag( 링크호출제거 ) 잘못동작되면시스템전체에영향을주는바, 오류혹은경보메시지표시을위한 Wall flag 최적화옵션선정 O flag: 컴파일시에 in-line 함수가아닌일반함수로인식함에따라 export 되는심볼로인식가능 심볼정의 _KERNEL: 커널모들에서실행을의미 MODULE: 헤더파일에게모듈에서사용하는코드를인식 LINUX: 라눅스시스템의 OS 를인식 (kernel_src/include/linux/config.h)

35 Device Driver Insertion 드라이버를커널에등록하고, 파일연산을정의하는등의초기화작업수행이필요 모듈의형태에서는 init_module() 함수에서초기화수행 드라이버의등록함수 커널에지정되어있는 chrdevs 구조에새로운 char device 등록 major number : 주번호, 0 을주면사용하지않는값을반환 name : 디바이스이름으로 /proc/devices 에표시 fops: 디바이스와연관된파일연산구조체포인터 음수가반환되면, 오류발생 형태 int register_chrdev( unsigned int major, const * name, struct file_operations * fops);

36 Device Driver Remove 더이상사용되지않는드라이버의제거 rmmod 하는명령을이용하여제거 : 드라이버내의 cleanup_module 이호출, 루틴안에서다음의 system call 을호출 드라이버제거함수 int unregister_chrdev( unsigned int major, const * name);

37 File Operation 디바이스드라이버를일반적인파일과유사한인터페이스를이용하여관리 각디바이스는파일형태로존재하고, 커널은파일연산을이용하여 I/O 연산을수행하도록인터페이스구성 디바이스드라이버를구현한다는것은파일연산구조체에서요구되는기능들을프로그래밍한다는것을의미 textlcd character device 의파일연산구조체예제 static struct file_operations textlcd_fops = { write : textlcdport_write, ioctl : textlcdport_ioctl, open : textlcdport_open, release : textlcdport_release, };

38 File Operation Structure (1) struct file_operations { struct module *owner; loff_t (*llseek) (struct file *, loff_t, int); ssize_t (*read) (struct file *, char *, size_t, loff_t *); ssize_t (*write) (struct file *, const char *, size_t,loff_t *); int (*readdir) (struct file *, void *, filldir_t); unsigned int (*poll) (struct file *,struct poll_table_struct *); int (*ioctl) (struct inode *,struct file *,unsigned int, unsigned long); int (*mmap) (struct file *, struct vm_area_struct *); int (*open) (struct inode *, struct file *); int (*flush) (struct file *); int (*release) (struct inode *, struct file *);

39 File Operation Structure (2) }; int (*fsync) (struct file *, struct dentry *, int datasync); int (*fasync) (int, struct file *, int); int (*lock) (struct file *, int, struct file_lock *); ssize_t (*readv) (struct file *,const struct iovec *,unsigned long,loff_t *); ssize_t (*writev) (struct file*,const struct iovec *,unsigned long,loff_t *); ssize_t (*sendpage) (struct file *,struct page *, int, size_t, loff_t *, int); unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);

40 file_operations 구조체의함수 Fuction Name llseek( ) read( ) write( ) readdir ( ) poll ( ) ioctl ( ) mmap ( ) open ( ) flush ( ) release ( ) fsync ( ) fasync ( ) check_media_change ( ) revalidate ( ) lock ( ) readv ( ) writev ( ) sendpage ( ) get_unmapped_area ( ) descriptions 파일구조체내에서위치를변경한다. ( 즉 file >f_pos를변경한다.) 장치의데이터를읽어서응용프로그램에게넘겨준다. 응용프로그램에서입력받은데이터값을장치에입력한다. Readdir은디렉토리의내용을찾기위해파일체계에의해직접적으로사용된다. Poll은응용프로그램이장치로부터특정이벤트를통지받게해준다. 응용프로그램이동작을제어하거나 ioctl 시스템호출을통한장치로부터데이터를구하게해준다. 사용자공간에대한장치주소공간의메모리멥핑을구현한다. 응용프로그램에서장치를열을때사용한다. 버퍼의데이터를삭제한다. 장치를닫을때사용한다. 모든나머지데이터를출력버퍼에기록한다. 응용프로그램이 fcntl을통해동작을변경할때호출된다. 최근의접근후매체가변경되었는지검사한다. 위의함수와연관되어있고, 디스크변경이감시되면필요에따라내부장치정보를갱신해야한다. 사용자가파일을잠그게해준다. 파일체계에서만유효하다. 파일로부터자료블록을읽어벡터에데이터를써넣는다. 벡터로부터자료블록을읽어파일에쓴다. 파일로부터자료를읽어다른파일로전송한다. 파일맵을검사해사용하지않은선형주소를찾는다.

41 Device Driver 작성방법 Application 에서디바이스드라이버작성 1. open 함수를이용하여특수장치파일을연다. dev = open( /dev/device,o_wronly); 2. 디바이스드라이버에서제공하는함수를이용하여디바이스를제어한다. write(dev,&buff,1); 3. close 함수를이용하여특수장치파일을닫는다. close(dev);

42 Hello Device Driver (1) Program Architecture init_module(), cleanup_module(): printk 문을이용하여콘솔에어떤함수가실행되는지알려준다. hello.c Source #include <linux/module> #include <linux/kernel.h> #include <linux/init.h> int init_module(void) { printk( Hello, Kernel!\n ); } void cleanup_module(void) { printk( Good-bye, Kernel!\n ); }

43 Hello Device Driver (2) Makefile CC = arm-linux-gcc KERNELDIR = /working/kernel/linux rmk4-pax2-empx1 INCLUDEDIR = -I$(KERNELDIR)/include I./ CFLAGS = -D KERNEL -DMODULE Wall O2 I$(INCLUDEDIR) MODULE_OBJS = hello.o MODULE_SRCS = hello.c $(MODULE_OBJS) : $(CC) $(CFLAGS) c $(MODULE_SRCS) clean: rm f *.o

44 Hello Device Driver (3) 드라이버컴파일 $make 드라이버수행 $insmod hello.o Using hello.o Hello, Kernel! $lsmod Module size Used by hello (unsed) $rmmod hello Good-bye, Kernel!

(Microsoft PowerPoint - Device Driver [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - Device Driver [\310\243\310\257 \270\360\265\345]) 목차 Device Driver 커널프로그램 Kernel program Kernel program 유의사항 Kernel module 디바이스드라이버 Character/Block device driver Device driver 구조 Device driver 작성절차및 module 등록 LED 디바이스드라이버 Kernel Program (1) 커널프로그램과응용프로그램과비교

More information

untitled

untitled Step Motor Device Driver Embedded System Lab. II Step Motor Step Motor Step Motor source Embedded System Lab. II 2 open loop, : : Pulse, 1 Pulse,, -, 1 +5%, step Step Motor (2),, Embedded System Lab. II

More information

슬라이드 1

슬라이드 1 / 임베디드시스템개요 / 임베디드운영체제 / 디바이스드라이버 01 Linux System Architecture Application Area Application System Call Interface BSD Socket Virtual File System INET(AF_INET) Kernel Area Buffer Cache Network Subsystem

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

망고100 보드로 놀아보자 -13

망고100 보드로 놀아보자 -13 리눅스디바이스드라이버개요 http://cafe.naver.com/embeddedcrazyboys http://www.mangoboard.com 디바이스드라이버개요 디바이스 (Device ) 네트워크어댑터, LCD 디스플레이, PCMCIA, Audio, 터미널, 키보드, 하드디스 크, 플로피디스크, 프린터등과같은주변장치들을말함 디바이스의구동에필요한프로그램, 즉디바이스드라이버가필수적으로요구

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

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Linux Kernel and Device Driver Jo, Heeseung 커널과의관계 시스템이지원하는하드웨어를응용프로그램에서사용할수있도록커널에서제공하는라이브러리 응용프로그램이하드웨어를제어하려면커널에자원을요청 - 응용프로그램에서는 C 라이브러리같은함수를호출 - 라이브러리내부에서는커널에게시스템콜을호출 - 커널로제어가넘어가게되면 ( 커널모드 ) 를통해서하드웨어를제어

More information

untitled

untitled Block Device Driver in Linux Embedded System Lab. II Embedded System Lab. II 2 Define objective of applications using device Study Hardware manual (Registers) (vector number) Understand interface to related

More information

Adding a New Dev file

Adding a New Dev file Adding a New Dev file - 김성영, 이재혁, 김남현 - 발표자 : 김남현 목차 01 Progress 02 Device file 03 How create dev file 04 Example Progress 4 월 1 일 프로젝트방향설정 4 월 8 일 device file 추가방법조사 mem.c 파일분석 4 월 10 일 알고리즘제시필요한함수분석

More information

Embeddedsystem(8).PDF

Embeddedsystem(8).PDF insmod init_module() register_blkdev() blk_init_queue() blk_dev[] request() default queue blkdevs[] block_device_ops rmmod cleanup_module() unregister_blkdev() blk_cleanup_queue() static struct { const

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 (Host) set up : Linux Backend RS-232, Ethernet, parallel(jtag) Host terminal Target terminal : monitor (Minicom) JTAG Cross compiler Boot loader Pentium Redhat 9.0 Serial port Serial cross cable Ethernet

More information

교육지원 IT시스템 선진화

교육지원 IT시스템 선진화 Module 11: 가상디바이스드라이버작성 ESP30076 임베디드시스템프로그래밍 (Embedded System Programming) 조윤석 전산전자공학부 주차별목표 디바이스드라이버의실행과정이해하기 크로스컴파일러를이용하여가상의디바이스드라이버생성하기 Kbuild 에대해이해하기 2 file_operations 구조체 struct file_operations {

More information

디바이스드라이버 (Device Driver) Driver is literally a subject which drive a object. 응용프로그램에서하드웨어장치를이용해서데이터를직접읽고쓰거나제어해야하는경우에디바이스드라이버를이용 하드웨어를제어하는프로그램과애플리케이션에서

디바이스드라이버 (Device Driver) Driver is literally a subject which drive a object. 응용프로그램에서하드웨어장치를이용해서데이터를직접읽고쓰거나제어해야하는경우에디바이스드라이버를이용 하드웨어를제어하는프로그램과애플리케이션에서 임베디드시스템설계강의자료 7 Device Driver (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 디바이스드라이버 (Device Driver) Driver is literally a subject which drive a object. 응용프로그램에서하드웨어장치를이용해서데이터를직접읽고쓰거나제어해야하는경우에디바이스드라이버를이용 하드웨어를제어하는프로그램과애플리케이션에서디바이스를제어하기위한자료구조와함수의집합

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

교육지원 IT시스템 선진화

교육지원 IT시스템 선진화 Module 10: 디바이스드라이버기초 ESP30076 임베디드시스템프로그래밍 (Embedded System Programming) 조윤석 전산전자공학부 주차별목표 디바이스드라이버란? 디바이스드라이버주요함수알아보기 디바이스드라이버기본골격구성하기 2 디바이스드라이버프로그래밍 리눅스커널의구조 커널프로그래밍 리눅스커널의핵심 (core) 기능추가 리눅스커널알고리즘개선

More information

<4D F736F F F696E74202D205BBAB0C3B75D20B8AEB4AABDBA20B5F0B9D9C0CCBDBA20B5E5B6F3C0CCB9F620B8F0B5A82E >

<4D F736F F F696E74202D205BBAB0C3B75D20B8AEB4AABDBA20B5F0B9D9C0CCBDBA20B5E5B6F3C0CCB9F620B8F0B5A82E > 안드로이드환경에서의 리눅스디바이스드라이버 문자디바이스드라이버설명 Table of contents 디바이스드라이버구조 시스템구조 모듈의기본골격 드라이버 IO 제어 안드로이드환경에서의 한백전자교육사업부 리눅스디바이스드라이버 시스템구조 쉘 응용프로그램 표준라이브러리 시스템콜 가상파일시스템 (VFS) 버퍼캐시 네트워크시스템 문자디바이스드라이버 블럭디바이스드라이버 네트워크디바이스드라이버

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된

More information

슬라이드 1

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

More information

Microsoft PowerPoint - e9.pptx

Microsoft PowerPoint - e9.pptx Kernel Programming 이란? 커널모드에서수행하는프로그램을작성하는것 임베디드리눅스커널프로그래밍 커널프로그래밍종류 Linux kernel core 기능추가 Linux kernel 알고리즘개선 Linux kernel 모듈프로그래밍 커널컴파일필요없음 2 Kernel Program vs. Application Program (1) Kernel Program

More information

Microsoft PowerPoint - 10-EmbedSW-11-모듈

Microsoft PowerPoint - 10-EmbedSW-11-모듈 11. 개요 proc 파일시스템 순천향대학교컴퓨터학부이상정 1 개요 순천향대학교컴퓨터학부이상정 2 개요 커널프래그래밍 커널의일부변경시커널전체를다시컴파일해야하는번거로움 해당모듈만컴파일하고필요할때만동적으로링크시켜커널의일부로사용할수있어효율적 자주사용하지않는커널기능은메모리에상주시키지않아도됨 확장성과재사용성을높일수있음. 순천향대학교컴퓨터학부이상정 3 모듈 (module)

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Text-LCD Device Control - Device driver Jo, Heeseung M3 모듈에장착되어있는 Tedxt LCD 장치를제어하는 App 을개발 TextLCD 는영문자와숫자일본어, 특수문자를표현하는데사용되는디바이스 HBE-SM5-S4210 의 TextLCD 는 16 문자 *2 라인을 Display 할수있으며, 이 TextLCD 를제어하기위하여

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED Controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-SEGMENT DEVICE CONTROL - DEVICE DRIVER Jo, Heeseung 디바이스드라이버구현 : 7-SEGMENT HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 디바이스드라이버구현 : 7-SEGMENT 6-Digit 7-Segment LED

More information

ECE30076 Embedded System Programming - LED Device Driver

ECE30076 Embedded System Programming - LED Device Driver Module 12: LED 제어디바이스드라이버 ESP30076 임베디드시스템프로그래밍 (Embedded System Programming) 조윤석 전산전자공학부 주차별목표 하드웨어제어를위한디바이스드라이버작성방법알아보기 LED 제어용디바이스드라이버작성하기 ioremap 을이용한 LED 제어디바이스드라이버 mmap 을이용한 LED 제어디바이스드라이버 2 디바이스구분

More information

슬라이드 1

슬라이드 1 / 유닉스시스템개요 / 파일 / 프로세스 01 File Descriptor file file descriptor file type unix 에서의파일은단지바이트들의나열임 operating system 은파일에어떤포맷도부과하지않음 파일의내용은바이트단위로주소를줄수있음 file descriptor 는 0 이나양수임 file 은 open 이나 creat 로 file

More information

Microsoft PowerPoint - IOControl [호환 모드]

Microsoft PowerPoint - IOControl [호환 모드] 목차 Input/Output Control I/O Control Mechanism mmap function munmap function RAM Area Access LED Control 4 digits 7 Segment Control Text LCD Control 1 2 I/O Control Mechanism (1) I/O Control Mechanism (2)

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The Last(8 th ) Lecture 유명환 ( yoo@netplug.co.kr) INDEX 1 I 2 C 통신이야기 2 ATmega128 TWI(I 2 C) 구조분석 4 ATmega128 TWI(I 2 C) 실습 : AT24C16 1 I 2 C 통신이야기 I 2 C Inter IC Bus 어떤 IC들간에도공통적으로통할수있는 ex)

More information

Microsoft PowerPoint APUE(Intro).ppt

Microsoft PowerPoint APUE(Intro).ppt 컴퓨터특강 () [Ch. 1 & Ch. 2] 2006 년봄학기 문양세강원대학교컴퓨터과학과 APUE 강의목적 UNIX 시스템프로그래밍 file, process, signal, network programming UNIX 시스템의체계적이해 시스템프로그래밍능력향상 Page 2 1 APUE 강의동기 UNIX 는인기있는운영체제 서버시스템 ( 웹서버, 데이터베이스서버

More information

Microsoft Word doc

Microsoft Word doc 2. 디바이스드라이버 [ DIO ] 2.1. 개요 타겟보드의데이터버스를이용하여 LED 및스위치동작을제어하는방법을설명하겠다. 2.2. 회로도 2.3. 준비조건 ARM 용크로스컴파일러가설치되어있어야한다. 하드웨어적인점검을하여정상적인동작을한다고가정한다. NFS(Network File System) 를사용할경우에는 NFS가마운트되어있어야한다. 여기서는소스전문을포함하지않았다.

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

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

PowerPoint 프레젠테이션

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

More information

Chap 6 모듈프로그래밍및 디바이스드라이버구현

Chap 6 모듈프로그래밍및 디바이스드라이버구현 Chap 6 모듈프로그래밍및 디바이스드라이버구현 Chap 6. 모듈프로그래밍및디바이스드라이버구현 1. 모듈프로그래밍 1.1. Kernel Module 1.1.1. Kernel Module 모듈은커널의구성요소로서, 리눅스시스템이부팅된후에동적으로 load, unload 할수있다. 이런특징으로인해커널을다시컴파일하거나시스템을재부팅하지않고도커널의일부분을교체할수있다.

More information

11장 포인터

11장 포인터 Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함

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

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

[ 마이크로프로세서 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

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

More information

Microsoft PowerPoint - o8.pptx

Microsoft PowerPoint - o8.pptx 메모리보호 (Memory Protection) 메모리보호를위해 page table entry에 protection bit와 valid bit 추가 Protection bits read-write / read-only / executable-only 정의 page 단위의 memory protection 제공 Valid bit (or valid-invalid bit)

More information

교육지원 IT시스템 선진화

교육지원 IT시스템 선진화 Module 16: ioctl 을활용한 LED 제어디바이스드라이버 ESP30076 임베디드시스템프로그래밍 (Embedded System Programming) 조윤석 전산전자공학부 주차별목표 ioctl() 을활용법배우기 커널타이머와 ioctl 을활용하여 LED 제어용디바이스드라이브작성하기 2 IOCTL 을이용한드라이버제어 ioctl() 함수활용 어떤경우에는읽는용도로만쓰고,

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

1217 WebTrafMon II

1217 WebTrafMon II (1/28) (2/28) (10 Mbps ) Video, Audio. (3/28) 10 ~ 15 ( : telnet, ftp ),, (4/28) UDP/TCP (5/28) centralized environment packet header information analysis network traffic data, capture presentation network

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

로봇SW교육원 강의자료

로봇SW교육원 강의자료 UNIT 06 커널모듈 로봇 SW 교육원 3 기 학습목표 2 커널모듈의장점을설명핛수있다. 커널모듈을작성핛수있다. 커널모듈을리눅스시스템에로딩하고해제핛수있다. 커널모듈 3 커널모듈이란무엇인가? 모듈을이용해커널의기능을확장핛수있음 디바이스드라이버추가또는커널기능확장 커널모듈의장점은무엇인가? 커널이미지를재컴파일하지않고기능을추가핛수있음 커널모듈은어떻게작성핛수있는가? 커널소스트리필요

More information

04디바이스드라이버

04디바이스드라이버 Linux Device Drivers ETRI ETRI 2 ETRI 3 File operation special file(=device file) (Character Device Driver) (Block Device Driver) (Network Device Driver) ETRI 4 Ex. (/dev/console), (/dev/ttys0) open, close,

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

Microsoft PowerPoint - lab14.pptx

Microsoft PowerPoint - lab14.pptx Mobile & Embedded System Lab. Dept. of Computer Engineering Kyung Hee Univ. Keypad Device Control in Embedded Linux HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착되어있다. 2 Keypad Device Driver

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 LED Device Control - mmap() Jo, Heeseung 디바이스제어 디바이스제어 HBE-SM5-S4210 에장착된 Peripheral 들은다양한인터페이스로연결되어있음 베이스보드에있는 LED 와 7-Segment 는 GPIO 로직접 CPU 에연결 M3 모듈인 FPGA 모듈은 FPGA 에의해서제어되며 CPU 와호스트버스로연결되어있어서프로그램에서는메모리인터페이스로인식

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

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 - [2009] 02.pptx

Microsoft PowerPoint - [2009] 02.pptx 원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include

More information

06Àå

06Àå Chapter 5 Chapter 6 Chapter 7 chapter 6 Part 1 6.1 Part 2 Part 3 145 146 Chapter 5 Chapter 6 Chapter 7 Part 1 Part 2 Part 3 147 148 Chapter 5 Chapter 6 Chapter 7 Part 1 Part 2 Part 3 149 150 Chapter 5

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 얇지만얇지않은 TCP/IP 소켓프로그래밍 C 2 판 4 장 UDP 소켓 제 4 장 UDP 소켓 4.1 UDP 클라이언트 4.2 UDP 서버 4.3 UDP 소켓을이용한데이터송싞및수싞 4.4 UDP 소켓의연결 UDP 소켓의특징 UDP 소켓의특성 싞뢰할수없는데이터젂송방식 목적지에정확하게젂송된다는보장이없음. 별도의처리필요 비연결지향적, 순서바뀌는것이가능 흐름제어 (flow

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

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2 제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F > 10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi

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 - 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

vi 사용법

vi 사용법 네트워크프로그래밍 6 장과제샘플코드 - 1:1 채팅 (udp 버전 ) 과제 서버에서먼저 bind 하고그포트를다른사람에게알려줄것 클라이언트에서알려준포트로접속 서로간에키보드입력을받아상대방에게메시지전송 2 Makefile 1 SRC_DIR =../../common 2 COM_OBJS = $(SRC_DIR)/addressUtility.o $(SRC_DIR)/dieWithMessage.o

More information

OPCTalk for Hitachi Ethernet 1 2. Path. DCOMwindow NT/2000 network server. Winsock update win95. . . 3 Excel CSV. Update Background Thread Client Command Queue Size Client Dynamic Scan Block Block

More information

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

Chap06(Interprocess Communication).PDF

Chap06(Interprocess Communication).PDF Interprocess Communication 2002 2 Hyun-Ju Park Introduction (interprocess communication; IPC) IPC data transfer sharing data event notification resource sharing process control Interprocess Communication

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 인터넷프로토콜 5 장 데이터송수신 (3) 1 파일전송메시지구성예제 ( 고정크기메시지 ) 전송방식 : 고정크기 ( 바이너리전송 ) 필요한전송정보 파일이름 ( 최대 255 자 => 255byte 의메모리공간필요 ) 파일크기 (4byte 의경우최대 4GB 크기의파일처리가능 ) 파일내용 ( 가변길이, 0~4GB 크기 ) 메시지구성 FileName (255bytes)

More information

Getting Started 1 st Edition March 2004 Contents 1.EMPOS II QUICK START... 1 1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 1.7. 1.8. 1.9....1...1...2 TextLcd...5 7 Segment...6 Led I/O...7 IP DEFAULT GATEWAY...8 WEB

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

(72) 발명자 이동희 서울 동작구 여의대방로44길 10, 101동 802호 (대 방동, 대림아파트) 노삼혁 서울 중구 정동길 21-31, B동 404호 (정동, 정동상 림원) 이 발명을 지원한 국가연구개발사업 과제고유번호 2010-0025282 부처명 교육과학기술부

(72) 발명자 이동희 서울 동작구 여의대방로44길 10, 101동 802호 (대 방동, 대림아파트) 노삼혁 서울 중구 정동길 21-31, B동 404호 (정동, 정동상 림원) 이 발명을 지원한 국가연구개발사업 과제고유번호 2010-0025282 부처명 교육과학기술부 (19) 대한민국특허청(KR) (12) 등록특허공보(B1) (45) 공고일자 2015년01월13일 (11) 등록번호 10-1480424 (24) 등록일자 2015년01월02일 (51) 국제특허분류(Int. Cl.) G06F 12/00 (2006.01) G11C 16/00 (2006.01) (21) 출원번호 10-2013-0023977 (22) 출원일자 2013년03월06일

More information

Microsoft PowerPoint - es-arduino-lecture-03

Microsoft PowerPoint - es-arduino-lecture-03 임베디드시스템개론 : Arduino 활용 Lecture #3: Button Input & FND Control 2012. 3. 25 by 김영주 강의목차 디지털입력 Button switch 입력 Button Debounce 7-Segment FND : 직접제어 7-Segment FND : IC 제어 2 디지털입력 : Switch 입력 (1) 실습목표 아두이노디지털입력처리실습

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Sensor Device Jo, Heeseung Sensor 실습 HBE-SM5-S4210 에는근접 / 가속도 / 컴파스센서가장착 각센서들을사용하기위한디바이스드라이버와어플리케이션을작성 2 근접 (Proximity) 센서 HBE-SM5-S4210 Camera Module 근접센서디바이스 근접센서는사물이다른사물에접촉되기이전에가까이접근하였는지를검출할목적으로사용 일반적으로생활에서자동문이나엘리베이터,

More information

Mango220 Android How to compile and Transfer image to Target

Mango220 Android How to compile and Transfer image to Target Mango220 Android How to compile and Transfer image to Target http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

chap7.key

chap7.key 1 7 C 2 7.1 C (System Calls) Unix UNIX man Section 2 C. C (Library Functions) C 1975 Dennis Ritchie ANSI C Standard Library 3 (system call). 4 C?... 5 C (text file), C. (binary file). 6 C 1. : fopen( )

More information

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap10-함수의활용.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

TEL:02)861-1175, FAX:02)861-1176 , REAL-TIME,, ( ) CUSTOMER. CUSTOMER REAL TIME CUSTOMER D/B RF HANDY TEMINAL RF, RF (AP-3020) : LAN-S (N-1000) : LAN (TCP/IP) RF (PPT-2740) : RF (,RF ) : (CL-201)

More information

KNK_C_05_Pointers_Arrays_structures_summary_v02

KNK_C_05_Pointers_Arrays_structures_summary_v02 Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",

More information

Microsoft PowerPoint - eSlim SV5-2410 [20080402]

Microsoft PowerPoint - eSlim SV5-2410 [20080402] Innovation for Total Solution Provider!! eslim SV5-2410 Opteron Server 2008. 3 ESLIM KOREA INC. 1. 제 품 개 요 eslim SV5-2410 Server Quad-Core and Dual-Core Opteron 2000 Series Max. 4 Disk Bays for SAS and

More information

휠세미나3 ver0.4

휠세미나3 ver0.4 andromeda@sparcs:/$ ls -al dev/sda* brw-rw---- 1 root disk 8, 0 2014-06-09 18:43 dev/sda brw-rw---- 1 root disk 8, 1 2014-06-09 18:43 dev/sda1 brw-rw---- 1 root disk 8, 2 2014-06-09 18:43 dev/sda2 andromeda@sparcs:/$

More information

Microsoft PowerPoint - 알고리즘_1주차_2차시.pptx

Microsoft PowerPoint - 알고리즘_1주차_2차시.pptx Chapter 2 Secondary Storage and System Software References: 1. M. J. Folk and B. Zoellick, File Structures, Addison-Wesley. 목차 Disks Storage as a Hierarchy Buffer Management Flash Memory 영남대학교데이터베이스연구실

More information

강의10

강의10 Computer Programming gdb and awk 12 th Lecture 김현철컴퓨터공학부서울대학교 순서 C Compiler and Linker 보충 Static vs Shared Libraries ( 계속 ) gdb awk Q&A Shared vs Static Libraries ( 계속 ) Advantage of Using Libraries Reduced

More information

Microsoft PowerPoint - chap11-포인터의활용.pptx

Microsoft PowerPoint - chap11-포인터의활용.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 - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

Microsoft PowerPoint - lab15.pptx

Microsoft PowerPoint - lab15.pptx Mobile & Embedded System Lab. Dept. of Computer Engineering Kyung Hee Univ. TextLCD Device Control in Embedded Linux M3 모듈에장착되어있는 Tedxt LCD 장치를제어하는 App을개발 TextLCD는영문자와숫자일본어, 특수문자를표현하는데사용되는디바이스 HBE-SM5-S4210의

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

슬라이드 1

슬라이드 1 정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 3 장함수와문자열 1. 함수의기본적인개념을이해한다. 2. 인수와매개변수의개념을이해한다. 3. 함수의인수전달방법 2가지를이해한다 4. 중복함수를이해한다. 5. 디폴트매개변수를이해한다. 6. 문자열의구성을이해한다. 7. string 클래스의사용법을익힌다. 이번장에서만들어볼프로그램 함수란? 함수선언 함수호출 예제 #include using

More information

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

Microsoft Word - MPC850 SPI Driver.doc

Microsoft Word - MPC850 SPI Driver.doc MPC850 SPI Driver 네트워크보드에서구현한 SPI Device Driver 제작및이용방법입니다. 문서작성 : 이재훈 (kingseft.lee@samsung.com) 이용한 SPI EEPROM - X5043/X5045 512 x 8 bit SPI EEPROM (4Kbits = 512bytes) - 제조사 : XICOR (www.xicor.com) -

More information

PowerPoint Presentation

PowerPoint Presentation GPU-based Keylogger Jihwan yoon 131ackcon@gmail.com Index Who am I Keylogger, GPU GPU based Keylogging - Locating the keyboard buffer - Capturing KEYSTROKES Demo About me Who am I 윤지환 CERT-IS reader BOB

More information

Microsoft PowerPoint - Supplement-02-Socket Overview.ppt [호환 모드]

Microsoft PowerPoint - Supplement-02-Socket Overview.ppt [호환 모드] 소켓개요 참고문헌 : 컴퓨터네트워크프로그래밍, 김화종, 홍릉과학출판사 Socket 정의 Socket 은 Transport 계층 (TCP 나 UDP) 을이용하는 API 1982 년 BSD 유닉스 41 에서처음소개 윈도우즈의경우 Winsock 제공 JAVA 또한 Socket 프로그래밍을위한클래스제공 Socket Interface 의위치 5-7 (Ses, Pre,

More information

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft PowerPoint - chap13-입출력라이브러리.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

슬라이드 1

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

More information

61 62 63 64 234 235 p r i n t f ( % 5 d :, i+1); g e t s ( s t u d e n t _ n a m e [ i ] ) ; if (student_name[i][0] == \ 0 ) i = MAX; p r i n t f (\ n :\ n ); 6 1 for (i = 0; student_name[i][0]!= \ 0&&

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

Microsoft PowerPoint - polling.pptx

Microsoft PowerPoint - polling.pptx 지현석 (binish@home.cnu.ac.kr) http://binish.or.kr Index 이슈화된키보드해킹 최근키보드해킹이슈의배경지식 Interrupt VS polling What is polling? Polling pseudo code Polling 을이용한키로거분석 방어기법연구 이슈화된키보드해킹 키보드해킹은연일상한가! 주식, 펀드투자의시기?! 최근키보드해킹이슈의배경지식

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

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

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D> VHDL 프로그래밍 D. 논리합성및 Xilinx ISE 툴사용법 학습목표 Xilinx ISE Tool 을이용하여 Xilinx 사에서지원하는해당 FPGA Board 에맞는논리합성과정을숙지 논리합성이가능한코드와그렇지않은코드를구분 Xilinx Block Memory Generator를이용한 RAM/ ROM 생성하는과정을숙지 2/31 Content Xilinx ISE

More information