Microsoft Word doc

Size: px
Start display at page:

Download "Microsoft Word doc"

Transcription

1 1. 디바이스드라이버 [ GPIO ] 1.1. GPIO 란 GPIO(General Purpose Input/Output) 란일반적인용도로사용가능한디지털입출력기능의 Port pins 이다. S3C2410의 GPIO는총 117개이며각각이 pin 들은 input/output으로프로그램되거나인터럽트 source로사용될수있다. S3C2410의대부분의 GPIO는단순히디지털입출력뿐만아니라부가적인기능을갖고있다. 그래서다른기능을사용하다보면처음생각보다단순 IO로사용할 GPIO가적어짐을알수있다. 따라서하드웨어설계자는 GPIO를사용할때이점을주의해야한다. 출력에관계된정확한사양은레퍼런스매뉴얼의하드웨어특성에관련된사항을참조하기바란다 GPIO 레지스터설명 S3C2410 의 GPIO Port 는다음과같다. - Port A (GPA) : 23-output port - Port B (GPB) : 11-input/output port - Port C (GPC) : 16-input/output port - Port D (GPD) : 16-input/output port - Port E (GPE) : 16-input/output port - Port F (GPF) : 8-input/output port - Port G (GPG) : 16-input/output port - Port H (GPH) : 11-input/output port

2 정확한레지스터의이름과주소는다음과같다. 레지스터주소 이름 접근 설명 0x GPACON 읽기 / 쓰기 GPA[22..0] 출력 / 부가기능사용허가설정레지스터 0x GPADAT 읽기 / 쓰기 GPA[22..0] DATA 출력레지스터 0x GPBCON 읽기 / 쓰기 GPB[10..0] 입력 / 출력 / 부가기능사용허가설정레지스터 0x GPBDAT 읽기 / 쓰기 GPB[10..0] DATA 입력 / 출력레지스터 0x GPBUP 읽기 / 쓰기 GPB[10..0] Pull-up disable 레지스터 0x GPBCON 읽기 / 쓰기 GPC[15..0] 입력 / 출력 / 부가기능사용허가설정레지스터 0x GPBDAT 읽기 / 쓰기 GPC[15..0] DATA 입력 / 출력레지스터 0x GPBUP 읽기 / 쓰기 GPC[15..0] Pull-up disable 레지스터 0x GPBCON 읽기 / 쓰기 GPD[15..0] 입력 / 출력 / 부가기능사용허가설정레지스터 0x GPBDAT 읽기 / 쓰기 GPD[15..0] DATA 입력 / 출력레지스터 0x GPBUP 읽기 / 쓰기 GPD[15..0] Pull-up disable 레지스터 0x GPBCON 읽기 / 쓰기 GPE[15..0] 입력 / 출력 / 부가기능사용허가설정레지스터 0x GPBDAT 읽기 / 쓰기 GPE[15..0] DATA 입력 / 출력레지스터 0x GPBUP 읽기 / 쓰기 GPE[15..0] Pull-up disable 레지스터 0x GPBCON 읽기 / 쓰기 GPF[7..0] 입력 / 출력 / 부가기능사용허가설정레지스터 0x GPBDAT 읽기 / 쓰기 GPF[7..0] DATA 입력 / 출력레지스터 0x GPBUP 읽기 / 쓰기 GPF[7..0] Pull-up disable 레지스터 0x GPBCON 읽기 / 쓰기 GPG[15..0] 입력 / 출력 / 부가기능사용허가설정레지스터 0x GPBDAT 읽기 / 쓰기 GPG[15..0] DATA 입력 / 출력레지스터 0x GPBUP 읽기 / 쓰기 GPG[15..0] Pull-up disable 레지스터 0x GPBCON 읽기 / 쓰기 GPH[10..0] 입력 / 출력 / 부가기능사용허가설정레지스터 0x GPBDAT 읽기 / 쓰기 GPH[10..0] DATA 입력 / 출력레지스터 0x GPBUP 읽기 / 쓰기 GPH[10..0] Pull-up disable 레지스터

3 1.3. 레지스터의설정값정의 GPACON [ 입 / 출력 / 부가기능사용허가설정레지스터 ] 이레지스터는 GPIO pin 들을입력설정할것인지, 출력으로설정할것인지, 부가적인기능을사용할것인지를결정한다. 0로해당 bit가설정되면출력이가능하게되어 GPADAT 레지스트에어떤값을넣어서제어할수있다. 1로해당 bit가설정되면부가적인기능이가능하게된다. 이레지스터는 RESET시에는 1로 bit가설정된다. 이레지스트는 NAND, ncs, address 신호의부가적인기능을사용하므로이레지스트를변경하여출력으로사용하지않는것이바람직하다. GPBCON - GPHCON [ 입 / 출력 / 부가기능사용허가설정레지스터 ] 이레지스터는 GPIO pin 들을입력설정할것인지, 출력으로설정할것인지, 부가적인기능을사용할것인지를결정한다. 0으로해당 bit가설정되면입력전용으로설정되어 GPBDAT GPHDAT 레지스트를통해서 GPIO pin 상태를읽을수있다. 1로해당 bit가설정되면출력이가능하게되어 GPBDAT GPHDAT 레지스트에어떤값을넣어서제어할수있다. 2로해당 bit가설정되면부가적인기능이가능하게된다. 이레지스터는 RESET시에는 0으로 bit가설정된다. GPBUP - GPHCON [ Pull-up 레지스터의 enable/disable 설정 ] 이레지스터는 GPIO의 Pull-up 을허가또는금지를설정한다. 1로해당 bit가설정되면 Pull-up 레지스터는 disable 된다. 0으로 bit를설정하면 Pull-up 레지스터는 enable 된다. 이레지스터는 RESET시에는 0으로 bit가설정된다. 위와같은 GPIO 레지스터들은커널의 include/asm-arm/arch-s3c2410/regs-gpio.h에정의되어있다.

4 1.4. GPIO 를이용한 LED 구동및스위치동작확인 간단하게타겟보드에서디버깅용으로달려있는 4개의 LED를가지고 GPIO의입출력을 TEST 하는방법을소개하겠다. 회로도 3.3V EINT[0..8] EINT[0..8] EINT4 EINT5 EINT6 EINT7 R80 R81 R82 R83 1K 1K 1K 1K D8 D9 LED LED D10 LED D11 LED 회로도에서보면타겟보드의디버깅용으로사용한 LED가연결되어있는 GPIO 는 GPF4, GPF5, GPF6, GPF7 이다. 준비조건 모든작업디렉토리는다음과같다. 커널작업디렉토리 : /project/ez-s2410/kernel/linux 디바이스드라이버디렉토리 : /project/ ez-s2410/gpio 어플리케이션디렉토리 : /project/ ez-s2410/gpio 헤더파일디렉토리 : /project/ ez-s2410/gpio NFS(Network File System) 를사용할경우에는 NFS 가마운트되어있어야한다. HowTo 문서중 [ 커널설치및패치 ] 의내용을탐독하시고, 커널을컴파일해야한다. 물론제공한 CD에서패치한커널을복사하여사용하여도상관없다. 문서내용중 " /project/ez-s2410/kernel/linux 이란디렉토리에설치하는것을가정하여설명한다. " 는말이있다. 이것은 Makefile을만들때중요한위치가된다. 이내용에관해서는아래 Makefile 만들기에서설명하기로한다. 다음화면은커널컴파일후 /project/ez-s2410/kernel/linux 의리스트이다. [.config 파일이있는지꼭확인하기바란다.]

5 S3C2410를위한 ARM 용크로스컴파일러가설치되어있어야한다. 컴파일에필요한파일들을확인하자.

6 디바이스드라이버 디바이스드라이버용 Makefile을만든다. 작업공간은 /project/ ez-s2410/gpio 디렉토리이다. # vi Makefile # # kernel 2.6 driver Makefile # obj-m := dev_gpio.o KDIR := /project/ez-s2410/kernel/linux PWD := $(shell pwd) SP_APP = app_gpio default: $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules cp -f $(obj-m:.o=.ko) /nfs/sap/. arm-linux-gcc -o $(SP_APP) $(SP_APP).c cp -f $(SP_APP) /nfs/sap clean : rm -rf *.ko rm -rf *.mod.* rm -rf.*.cmd rm -rf *.o obj-m := dev_gpio.o kernel-2.6대에서모듈컴파일을위해서필요하다. 모듈은.ko 형태로생성된다. KDIR = /project/ez-s2410/kernel/linux 컴파일에사용될커널디렉토리를적어준다. $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules 모듈을컴파일한다. arm-linux-gcc -o $(SP_APP) $(SP_APP).c 어플리케이션을컴파일한다.

7 디바이스드라이버를만든다. [dev_gpio.c ] 작업공간은 /project/ ez-s2410/gpio 디렉토리이다. # vi gpio.c - 파일 : dev_gpio.c 설명 : 디바이스드라이버예제 kernel 2.6 버젼으로작성되었다. 작성 : ez-s2410 보드의 GPIO 핀 GPF[4..7] 에는디버그용 LED 가연결되어있다. GPF4, GFP5 : 입력 GPF6, GFP7 : 츨력 */ #include <linux/config.h> #include <linux/module.h> #include <linux/kernel.h> #include <linux/version.h> #include <linux/init.h> #include <linux/fs.h> #include <linux/sched.h> #include <linux/interrupt.h> #include <linux/wait.h> #include <linux/ioport.h> #include <linux/slab.h> #include <linux/poll.h> #include <linux/proc_fs.h> #include <asm/system.h> #include <asm/uaccess.h> #include <asm/hardware.h> #include <asm/irq.h> #include <asm/ioctl.h> #include <asm/unistd.h> #include <asm/io.h> #include <asm/arch/regs-gpio.h> #include "dev_gpio.h" /* 로컬상수정의 */ #define DEV_NAME "dev-gpio" #define DEV_VERSION DEV_NAME" V01" /* 로컬변수정의 */ static int showmsg = 0; static int major = DEV_MAJOR_DEF; /* 매크로정의 */ #define reg_s2410(x) *(volatile unsigned long *)(x) #define set_gpio_in(reg, nr) reg &= ~(3<<(nr)*2) #define set_gpio_out(reg, nr) reg &= ~(3<<(nr)*2); reg = (1<<(nr)*2) #define GPIO_IN(reg,nr) (reg & (1<<(nr))? 1:0) #define GPIO_OUT(reg,nr,val) reg &= ~(1<<(nr)); reg = (val&0x1)<<(nr);

8 /*implementation ========================================================*/ 설명 : GPIO 입출력을설정한다. 주의 : void hw_gpf_init( void ) set_gpio_in( reg_s2410(s3c2410_gpfcon), 4 ); set_gpio_in( reg_s2410(s3c2410_gpfcon), 5 ); set_gpio_out( reg_s2410(s3c2410_gpfcon), 6 ); set_gpio_out( reg_s2410(s3c2410_gpfcon), 7 ); // 내부 pull-up disable 7..4 reg_s2410(s3c2410_gpfup) = 0xf0; // led off GPIO_OUT( reg_s2410(s3c2410_gpfdat), 6, 1 ); GPIO_OUT( reg_s2410(s3c2410_gpfdat), 7, 1 ); 설명 : GPIO 출력주의 : void hw_gpf_out( int gpnr, int val ) GPIO_OUT( reg_s2410(s3c2410_gpfdat), gpnr, val ); 설명 : GPIO 입력주의 : int hw_gpf_in( int gpnr ) return GPIO_IN( reg_s2410(s3c2410_gpfdat), gpnr ); 설명 : 어플리케이션에서디바이스를 open 하였을때호출되는함수주의 : int gpio_open( struct inode *inode, struct file *filp ) try_module_get(this_module); if (showmsg) printk(" %s OPEN\n", DEV_NAME ); return 0; 설명 : 어플리케이션에서디바이스를 close를하였을때호출되는함수주의 : int gpio_release( struct inode *inode, struct file *filp) module_put(this_module); if (showmsg) printk(" %s CLOSE\n", DEV_NAME ); return 0;

9 설명 : ioctl 함수 int gpio_ioctl( struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg ) switch (cmd) case IOCTL_GPIO_IN : if ( ( 4 <= arg ) && ( arg <= 5 ) ) return hw_gpf_in( arg ); return -1; case IOCTL_GPIO_OUT_SET : if ( ( 6 <= arg ) && ( arg <= 7 ) ) hw_gpf_out( arg, 1 ); return 0; return -1; case IOCTL_GPIO_OUT_CLR : if ( ( 6 <= arg ) && ( arg <= 7 ) ) hw_gpf_out( arg, 0 ); return 0; return -1; return -EINVAL; 드라이버에사용되는접근함수에대한함수포인터구조체를정의한다. 이구조체는 fs.h에정의되어있다. static struct file_operations gpio_fops =.open = gpio_open,.release = gpio_release,.ioctl = gpio_ioctl, ; 설명 : init int gpio_init( void ) // 장치를등록한다. ============================================ major &= 0xff; if(!register_chrdev( major, DEV_NAME, &gpio_fops ) ) printk(" register device %s OK (major=%d)\n", DEV_VERSION, major ); else printk(" unable to get major %d for %s\n", major, DEV_NAME ); return -EBUSY; hw_gpf_init(); return 0;

10 설명 : exit 주의 : void gpio_exit( void ) unregister_chrdev( major, DEV_NAME ); printk(" unregister %s OK\n", DEV_NAME ); */ module_init(gpio_init); module_exit(gpio_exit); MODULE_PARM(major, "i"); MODULE_PARM(showmsg, "i"); MODULE_AUTHOR("freefrug@falinux.com"); MODULE_LICENSE("Dual BSD/GPL"); /* end */ 헤더파일을만든다. [ gpio.h ] 작업공간은 /project/ez-x5/test/gpio/include 디렉토리이다. # vi gpio.h // // 파일 : dev_gpio.c // 설명 : 디바이스드라이버예제 // kernel 2.6.x 버젼으로작성되었다. // // 작성 : 오재경 freefrug@falinux.com // #ifndef _DEV_GPIO_H_ #define _DEV_GPIO_H_ /* 모듈관련 */ #define DEV_MAJOR_DEF 240 /* ioctl 함수의 command */ #define MAGIC_GPIO 's' #define IOCTL_GPIO_IN _IOW( MAGIC_GPIO, 10, int ) #define IOCTL_GPIO_OUT_SET _IOW( MAGIC_GPIO, 11, int ) #define IOCTL_GPIO_OUT_CLR _IOW( MAGIC_GPIO, 12, int ) #endif // _DEV_GPIO_H_

11 어플리케이션 어플리케이션프로그램을만든다. [ test.c ] 작업공간은 /project/ ez-s2410/gpio 디렉토리이다. # vi app_gpio.c // // 파일 : app_gpio.c // 설명 : // #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/signal.h> #include <sys/ioctl.h> #include <sys/poll.h> #include "dev_gpio.h" #define NODE_FILE "/dev/gpio" // // 설명 : main // 주의 : // int main( int argc, char **argv ) int fd; // 파일핸들 fd = open( NODE_FILE, O_RDWR O_NONBLOCK ); if ( fd < 0 ) perror( NODE_FILE" open :"); exit(0); printf( "app_gpio start...\n" ); // led ON ioctl( fd, IOCTL_GPIO_OUT_CLR, 6 ); ioctl( fd, IOCTL_GPIO_OUT_CLR, 7 ); // led OFF ioctl( fd, IOCTL_GPIO_OUT_SET, 6 ); ioctl( fd, IOCTL_GPIO_OUT_SET, 7 ); sleep(1); sleep(1); while(1) if ( 0 == ioctl( fd, IOCTL_GPIO_IN, 4 ) ) ioctl( fd, IOCTL_GPIO_OUT_CLR, 6 ); ioctl( fd, IOCTL_GPIO_OUT_SET, 6 ); ioctl( fd, IOCTL_GPIO_OUT_CLR, 7 ); ioctl( fd, IOCTL_GPIO_OUT_SET, 7 ); sleep(1); sleep(1);

12 if ( 0 == ioctl( fd, IOCTL_GPIO_IN, 5 ) ) ioctl( fd, IOCTL_GPIO_OUT_CLR, 6 ); ioctl( fd, IOCTL_GPIO_OUT_CLR, 7 ); break; close( fd ); printf( "app_gpio end\n" ); return 0; 여기까지 EZ-S2410에서 GPIO를이용한 TEST 할수있는디바이스드라이버와어플리케이션을만들었다. 이소스는제공한 CD에들어있다. 컴파일 작업공간은 /project/ez-x5/test/gpio/include 디렉토리이다. # make clean # make

13 위와같이컴파일이정상적으로수행이되고나면다음과같은파일들이생성된다. 여기서필요한모듈과실행파일은다음과같다. 모듈 : dev_gpio.ko 실행파일 : app_gpio 타겟보드에디바이스드라이버및어플리케이션다운로드하기 타겟보드에다운로드하는방법은두가지가있다. 첫번째는 NFS를이용하는방법이있다. 이것은디버깅을하기에유용하다. 두번째는램디스크이미지에넣는방법이있다. 이것은디버깅작업을할때는매우귀찮은작업이다. 첫번째방법은 NFS를마운트되어있다는전제조건하에마운트된디렉토리에컴파일한 dev_gpio.ko와 app_gpio파일을복사하여모듈을적재하고어플리케이션을실행시키면된다. $ insmod dev_gpio.ko $./ app_gpio [root@falinux ~]$ mount -t nfs -o nolock :/nfs /mnt/nfs/ nfs warning: mount version older than kernel [root@falinux ~]$ [root@falinux ~]$ cd /mnt/nfs/sap/ insmod dev_gpio.ko Using dev_gpio.ko register device dev-gpio V01 OK (major=240)./app_gpio /dev/gpio open :: No such file or directory mknod /dev/gpio c /app_gpio app_gpio start...

14 두번째방법은램디스크이미지를이용하는방법에대하여설명하겠다. 램디스크이미지복사하기 타겟보드에올라가있는램디스크를가져오자. 만일없다면제공한 CD에서복사를하자. 자세한설명은 [10 장램디스크이미지제작 ] 을참고하기바란다. 단지여기서는작업내용만을적어놓겠다. 모든작업디렉토리는 /project/ez-s2410/ramdisk 이며, 디렉토리를만든다. # mkdir /project/ez-s2410/ramdisk 램디스크이미지를복사한다. # cp -a /mnt/cdrom/sw/ramdisk/ramdisk-12m.gz /project/ez-s2410/ramdisk/ 작업디렉토리로이동한다. # cd /project/ez-s2410/ramdisk 램디스크이미지압축풀기 램디스크이미지압축을풀어마운트할작업디렉토리를만든다. # mkdir ramdisk_dir 램디스크이미지압축을푼다. # gzip d ramdisk-12m.gz 압축을푼램디스크이미지를마운트한다. # mount t ext2 o loop ramdisk-12m ramdisk_dir 램디스크이미지를수정한다. 디바이스노드를만든다. # cd ramdisk_dir # mknod /dev/gpio c 240 0

15 디바이스드라이버와어플리케이션프로그램을복사할디렉토리를만든다. # pwd /project/ez-s2410/ramdisk/ramdisk_dir # mkdir gpio # cd gpio # cp a /project/ez-s2410/gpio/dev_gpio.ko. # cp a /project/ez-s2410/gpio/app_gpio. 램디스크이미지압축하기원하는대로램디스크를만든후에다음의작업을하여압축한다. 마운트를해제한다. # pwd /project/ez-s2410/ # umount ramdisk_dir 램디스크이미지압축한다. # gzip ramdisk-12m 램디스크이미지를타겟보드로다운로드한다. 다운로드하는방법은앞장에설명되어있다. 이를참고하기바란다. 모듈적재및프로그램실행 타겟보드에램디스크를다운로드하였다면타겟보드를다시부팅하고로그인하여타겟보드에 gpio 디렉토리가생성되고, 이디렉토리안에 dev_gpio.ko 와 app_gpio 파일이존재할것이다. 모듈적재하기모듈적재는 insmod 명령을사용한다. $ cd /gpio/ $ insmod dev_gpio.ko 만약 /dev/gpio라는파일시스템이없으면만들어주어야한다. $ ls /dev/ grep gpio $ mknod /dev/gpio c 240 0

16 모듈해지는 rmmod 명령을사용한다. $ rmmod dev_gpio.ko 다음은위의내용을실행한화면이다. [root@falinux ~]$ mount -t nfs -o nolock :/nfs /mnt/nfs/ nfs warning: mount version older than kernel [root@falinux ~]$ [root@falinux ~]$ cd /mnt/nfs/sap/ insmod dev_gpio.ko Using dev_gpio.ko register device dev-gpio V01 OK (major=240)./app_gpio /dev/gpio open :: No such file or directory mknod /dev/gpio c rmmod dev_gpio unregister dev-gpio OK 어플리케이션프로그램실행하기모듈이적재되었고, 디바이스드라이버노드가만들어져있다면어플리케이션프로그램을실행시켜 GPIO를이용한 LED의입 / 출력 TEST를하자. $ insmod gpio_dev.o $./app_gpio [root@falinux ~]$ mount -t nfs -o nolock :/nfs /mnt/nfs/ nfs warning: mount version older than kernel [root@falinux ~]$ [root@falinux ~]$ cd /mnt/nfs/sap/ insmod dev_gpio.ko Using dev_gpio.ko register device dev-gpio V01 OK (major=240)./app_gpio app_gpio start...

17 참고사항 위에서모두설명한내용이지만다시한번참고하기바란다. 1) insmod dev_gpio.ko 실행시다음과같은경고메시지 insmod dev_gpio.ko Using dev_gpio.ko Warning: loading gpio_dev will taint the kernel: no license See for information about tainted modules 이경고메시지는디바이스드라이버의 modules license 에관련한경고이다. 이문제의해결은디바이스드라이버의마지막에다음의코드를추가해주면된다. [ FALINUX에서는이부분이제거된상태로제공된다 ] MODULE_LICENSE("Dual BSD/GPL "); MODULE_PARM(major, "i"); MODULE_PARM(showmsg, "i"); MODULE_AUTHOR("freefrug@falinux.com"); MODULE_LICENSE("Dual BSD/GPL"); 2) 어플리케이션실행시 GPIO Open Fail 이나올경우./app_gpio /dev/gpio open :: No such file or directory 이문제는디바이스장치파일이없어서나는에러메시지이다. 다음과같이파일시스템을 /dev 디렉토리내에만들어주면된다. mknod /dev/gpio c 240 0

Microsoft Word doc

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

More information

교육지원 IT시스템 선진화

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

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

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 프레젠테이션 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

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

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

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

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

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

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

More information

PowerPoint 프레젠테이션

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

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

/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

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

PowerPoint 프레젠테이션

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

More information

교육지원 IT시스템 선진화

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

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

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

PowerPoint 프레젠테이션

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

More information

본 강의에 들어가기 전

본 강의에 들어가기 전 C 기초특강 종합과제 과제내용 구조체를이용하여교과목이름과코드를파일로부터입력받아관리 구조체를이용하여학생들의이름, 학번과이수한교과목의코드와점수를파일로부터입력 학생개인별총점, 평균계산 교과목별이수학생수, 총점및평균을계산 결과를파일에저장하는프로그램을작성 2 Makefile OBJS = score_main.o score_input.o score_calc.o score_print.o

More information

Microsoft Word doc

Microsoft Word doc 1. 임베디드리눅스장비에서램디스크를이용하여루트파일시스템을구현하였을경우에는보드동작중에파일로기록된내용이전원이꺼짐과동시에소실된다. 기록된내용을영구저장하기위해서는일반적으로플래시메모리에기록하여야한다. 플래시메모리를리눅스의루트파일시스템으로사용하기위해서는 MTD (Memory Technology Device ) 블록디바이스드라이버를사용하여야한다. 타겟보드는 NAND 플래시기반의보드이다.

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

Microsoft PowerPoint - 10-EmbedSW-11-모듈

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

More information

Chap 7

Chap 7 Chap 7 FPGA 디바이스 1. FPGA 디바이스 1.1. External FPGA Device Driver FPGA 모듈을제어하는디바이스드라이버를작성하는방법에대해서알아보도록한다. 이모듈은 Achro-i.MX6Q의 External Connector에연결된다. 본교재에는 FGPA 펌웨어소스코드가포함되어있지않지만 VHDL로작성할수있다. FGPA 관련소스는패키지에포함되어있는바이너리를이용하면된다.

More information

<4D F736F F F696E74202D205BBAB0C3B75D20B8AEB4AABDBA20B5F0B9D9C0CCBDBA20B5E5B6F3C0CCB9F620B8F0B5A82E >

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

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

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

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

제1장 Unix란 무엇인가?

제1장  Unix란 무엇인가? 1 12 장파이프 2 12.1 파이프 파이프원리 $ who sort 파이프 3 물을보내는수도파이프와비슷 한프로세스는쓰기용파일디스크립터를이용하여파이프에데이터를보내고 ( 쓰고 ) 다른프로세스는읽기용파일디스크립터를이용하여그파이프에서데이터를받는다 ( 읽는다 ). 한방향 (one way) 통신 파이프생성 파이프는두개의파일디스크립터를갖는다. 하나는쓰기용이고다른하나는읽기용이다.

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

임베디드시스템설계강의자료 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 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

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

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

10.

10. 10. 10.1 10.2 Library Routine: void perror (char* str) perror( ) str Error 0 10.3 10.3 int fd; /* */ fd = open (filename, ) /*, */ if (fd = = -1) { /* */ } fcnt1 (fd, ); /* */ read (fd, ); /* */ write

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

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

슬라이드 1

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

More information

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

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

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

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

고급 프로그래밍 설계

고급 프로그래밍 설계 UNIT 13 라즈베리파이블루투스 광운대학교로봇 SW 교육원 최상훈 Bluetooth Module 2 Bluetooth Slave UART Board UART 인터페이스용블루투스모듈 slave/device mode 라즈베리파이 GPIO 3 < 라즈베리파이 B+ 의 P1 헤더핀 GPIO 배치도 > wiringpi 라이브러리 4 라즈베리파이 GPIO 라이브러리

More information

Microsoft PowerPoint - chap12-고급기능.pptx

Microsoft PowerPoint - chap12-고급기능.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장 Unix란 무엇인가?

제1장  Unix란 무엇인가? 4 장파일 컴퓨터과학과박환수 1 2 4.1 시스템호출 컴퓨터시스템구조 유닉스커널 (kernel) 하드웨어를운영관리하여다음과같은서비스를제공 파일관리 (File management) 프로세스관리 (Process management) 메모리관리 (Memory management) 통신관리 (Communication management) 주변장치관리 (Device

More information

한백전자교육사업부 AndroX Studio 로배우는임베디드프로그래밍 - 한백전자 - 본문서의저작권은 한백전자에있으며, 허락없이무단복제및전제를불허합니다.

한백전자교육사업부 AndroX Studio 로배우는임베디드프로그래밍 - 한백전자 - 본문서의저작권은 한백전자에있으며, 허락없이무단복제및전제를불허합니다. 한백전자교육사업부 AndroX Studio 로배우는임베디드프로그래밍 - 한백전자 - 실습용장비 ; SM7-S4412 프로세서와주변장치직접연결 GPIO, 인터럽트, SPI, I2C 인터페이스사용 FPGA 모듈을거치지않음! 마이컴개발을위한아두이노 (Arduino Mega 2560) 탑재 ADK 2011 지원 안드로이드장치와아두이노보드연동가능 2 타깃주요명칭 HBE-SM7-S4412

More information

제12장 파일 입출력

제12장 파일 입출력 제 4 장파일입출력 리눅스시스템프로그래밍 청주대학교전자공학과 한철수 1 시스템호출 (system call) 파일 (file) 임의접근 (random access) 주요학습내용 2 4.1 절 커널의역할 (kernel) 커널 (kernel) 은운영체제의핵심부분으로서, 하드웨어를운영관리하는여러가지서비스를제공함 파일관리 (File management) 디스크 프로세스관리

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

Sena Technologies, Inc. HelloDevice Super 1.1.0

Sena Technologies, Inc. HelloDevice Super 1.1.0 HelloDevice Super 110 Copyright 1998-2005, All rights reserved HelloDevice 210 ()137-130 Tel: (02) 573-5422 Fax: (02) 573-7710 E-Mail: support@senacom Website: http://wwwsenacom Revision history Revision

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 임베디드리눅스개발환경실습 Jo, Heeseung 타겟보드모니터링동작실습 호스트 PC 에서시리얼포트를통해서타겟보드를모니터링 타겟보드가프로그램을실행하는동안일어나는일을시리얼포트로메시지를출력하면호스트 PC 에서는시리얼포트를통해메시지를수신하여이를화면에출력 minicom 프로그램사용 - minicom 이정상적으로설정이되고, 타겟보드에최소한부트로더가올라간상태라면 minicom

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

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 DEVELOPMENT ENVIRONMENT 2 MAKE Jo, Heeseung MAKE Definition make is utility to maintain groups of programs Object If some file is modified, make detects it and update files related with modified one 2

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Development Environment 2 Jo, Heeseung make make Definition make is utility to maintain groups of programs Object If some file is modified, make detects it and update files related with modified one It

More information

Microsoft Word - KPMC-400,401 SW 사용 설명서

Microsoft Word - KPMC-400,401 SW 사용 설명서 LKP Ethernet Card SW 사용설명서 Version Information Tornado 2.0, 2.2 알 림 여기에실린내용은제품의성능향상과신뢰도의증대를위하여예고없이변경될수도있습니다. 여기에실린내용의일부라도엘케이일레븐의사전허락없이어떠한유형의매체에복사되거나저장될수없으며전기적, 기계적, 광학적, 화학적인어떤방법으로도전송될수없습니다. 엘케이일레븐경기도성남시중원구상대원동

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

슬라이드 1

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

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

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어 개나리 연구소 C 언어 노트 (tyback.egloos.com) 프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어먹고 하더라구요. 그래서,

More information

ABC 11장

ABC 11장 12 장고급응용 0 수행중인프로그램 프로세스 모든프로세스는유일한프로세스식별번호 (PID) 를가짐 유닉스에서는 ps 명령을사용하여프로세스목록을볼수있음 12-1 프로세스 $ ps -aux USER PID %CPU %MEM SZ RSS TT STAT START TIME COMMAND blufox 17725 34.0 1.6 146 105 i2 R 15:13 0:00

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Web server porting 1 Jo, Heeseung 웹서버포팅 HBE-SM5-S4210 를임베디드웹서버로사용할수있도록웹서버를올리는작업 임베디드서버에널리쓰이는웹서버들중 GoAhead 라는웹서버를포팅 CGI 프로그램을이용하여웹에서 HBE-SM5-S4210 의 LED, 7- Segment, TextLCD 를제어실습 2 Goahead webserver 소스를다운받거나제공된

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

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor 19. 전처리와분할컴파일 순천향대학교컴퓨터학부이상정 1 학습내용 전처리명령어 #include #define 기호상수 const 분할컴파일 순천향대학교컴퓨터학부이상정 2 전처리과정 전처리 (preprocessor) 전처리명령어는 # 기호로시작 #incldue #define 순천향대학교컴퓨터학부이상정 3 #include (1) 지정된파일을프로그램에삽입 꺽쇠괄호는포함할파일을컴파일러에설정되어있는특정디렉토리에서검색

More information

Microsoft PowerPoint - 09-Pipe

Microsoft PowerPoint - 09-Pipe 9. 파이프 상명대학교소프트웨어학부 파이프 시그널은이상한사건이나오류를처리하는데는이용하지만, 한프로세스로부터다른프로세스로대량의정보를전송하는데는부적합하다. 파이프 한프로세스를다른관련된프로세스에연결시켜주는단방향의통신채널 2 pipe() Usage #include int pipe(int filedes[2]); 3 < ex_1.c > #include

More information

2009년 상반기 사업계획

2009년 상반기 사업계획 소켓프로그래밍활용 IT CookBook, 유닉스시스템프로그래밍 학습목표 소켓인터페이스를활용한다양한프로그램을작성할수있다. 2/23 목차 TCP 기반프로그래밍 반복서버 동시동작서버 동시동작서버-exec함수사용하기 동시동작서버-명령행인자로소켓기술자전달하기 UDP 프로그래밍 3/23 TCP 기반프로그래밍 반복서버 데몬프로세스가직접모든클라이언트의요청을차례로처리 동시동작서버

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

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - (Asynchronous Mode) - - - ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - UART (Univ ers al As y nchronous Receiver / T rans mitter) 8250A 8250A { COM1(3F8H). - Line Control Register

More information

1장. 유닉스 시스템 프로그래밍 개요

1장.  유닉스 시스템 프로그래밍 개요 Unix 프로그래밍및실습 7 장. 시그널 - 과제보충 응용과제 1 부모프로세스는반복해서메뉴를출력하고사용자로부터주문을받아자식프로세스에게주문내용을알린다. (SIGUSR1) ( 일단주문을받으면음식이완료되기전까지 SIGUSR1 을제외한다른시그널은모두무시 ) timer 자식프로세스는주문을받으면조리를시작한다. ( 일단조리를시작하면음식이완성되기전까지 SIGALARM 을제외한다른시그널은모두무시

More information

BMP 파일 처리

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

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

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

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 27. 파일의분할과헤더파일의디자인 2013.09.11. 오병우 컴퓨터공학과 설계 (design) 중요 27-1 프로그램의모듈화 변경, 확장등의유지보수가용이하도록설계 C 언어에서는 module 구성중요 C++, Java 등의객체지향언어에서는 class, abstraction 중요 Design Patterns 에대해 2 학년여름방학이나겨울방학에공부해보시기바랍니다.

More information

Microsoft Word doc

Microsoft Word doc 1. Serial 프로그램예제 1.1. 개요 타겟보드자체에메인콘솔용으로사용되는통신포트이외에두개의다른포트를지원하고있다. 일반적으로메인콘솔용으로사용되는포트는통신용으로부적합하다. 왜냐하면커널에서발생되는메세지가메인콘솔로출력되기때문에통신에방해를받을수있기때문이다. 이런이유로타겟보드에는통신시험이나응용통신에이용할수있도록 MCU 의통신포트에 MAX2421 레벨변환기를추가하였다.

More information

Microsoft PowerPoint - ch09_파이프 [호환 모드]

Microsoft PowerPoint - ch09_파이프 [호환 모드] 학습목표 파이프를이용한 IPC 기법을이해한다. 이름없는파이프를이용해통신프로그램을작성할수있다. 이름있는파이프를이용해통신프로그램을작성할수있다. 파이프 IT CookBook, 유닉스시스템프로그래밍 2/20 목차 파이프의개념 이름없는파이프만들기 복잡한파이프생성 양방향파이프활용 이름있는파이프만들기 파이프의개념 파이프 두프로세스간에통신할수있도록해주는특수파일 그냥파이프라고하면일반적으로이름없는파이프를의미

More information

2009년 상반기 사업계획

2009년 상반기 사업계획 파이프 IT CookBook, 유닉스시스템프로그래밍 학습목표 파이프를이용한 IPC 기법을이해한다. 이름없는파이프를이용해통신프로그램을작성할수있다. 이름있는파이프를이용해통신프로그램을작성할수있다. 2/20 목차 파이프의개념 이름없는파이프만들기 복잡한파이프생성 양방향파이프활용 이름있는파이프만들기 3/20 파이프의개념 파이프 두프로세스간에통신할수있도록해주는특수파일 그냥파이프라고하면일반적으로이름없는파이프를의미

More information

03장.스택.key

03장.스택.key ---------------- DATA STRUCTURES USING C ---------------- 03CHAPTER 1 ? (stack): (LIFO:Last-In First-Out) 2 : top : ( index -1 ),,, 3 : ( ) ( ) -> ->. ->.... 4 Stack ADT : (LIFO) : init():. is_empty():

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 WEB SERVER PORTING 1 Jo, Heeseung 웹서버포팅 HBE-SM5-S4210 를임베디드웹서버로사용할수있도록웹서버를올리는작업 임베디드서버에널리쓰이는웹서버들중 GoAhead 라는웹서버를포팅 CGI 프로그램을이용하여웹에서 HBE-SM5-S4210 의 LED, 7- Segment, TextLCD 를제어실습 2 Goahead webserver 소스를다운받거나제공된

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

<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

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070> #include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0

More information

<4D F736F F F696E74202D FC7C1B7CEBCBCBDBA20BBFDBCBAB0FA20BDC7C7E0205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D FC7C1B7CEBCBCBDBA20BBFDBCBAB0FA20BDC7C7E0205BC8A3C8AF20B8F0B5E55D> 학습목표 프로세스를생성하는방법을이해한다. 프로세스를종료하는방법을이해한다. exec함수군으로새로운프로그램을실행하는방법을이해한다. 프로세스를동기화하는방법을이해한다. 프로세스생성과실행 IT CookBook, 유닉스시스템프로그래밍 2/24 목차 프로세스생성 프로세스종료함수 exec 함수군활용 exec 함수군과 fork 함수 프로세스동기화 프로세스생성 [1] 프로그램실행

More information

2009년 상반기 사업계획

2009년 상반기 사업계획 프로세스생성과실행 IT CookBook, 유닉스시스템프로그래밍 학습목표 프로세스를생성하는방법을이해한다. 프로세스를종료하는방법을이해한다. exec함수군으로새로운프로그램을실행하는방법을이해한다. 프로세스를동기화하는방법을이해한다. 2/24 목차 프로세스생성 프로세스종료함수 exec 함수군활용 exec 함수군과 fork 함수 프로세스동기화 3/24 프로세스생성 [1]

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

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조 운영체제실습 소프트웨어관리 2016. 6 표월성 passwd74@naver.com cherub.sungkyul.ac.kr 목차 Ⅶ. 소프트웨어관리 1. 소스코드컴파일을이용한소프트웨어설치 2. RPM패키지를이용한소프트웨어설치 3. YUM패키지를이용한소프트웨어설치 4. APT패키지를이용한소프트웨어설치 5. Telnet서버설치 6. ssh서버 (openssh) 설치

More information

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습니다. 여러분모두 Windows 에서 hex editor(hex dump, hex viewer) 라는것을사용해보셨을겁니다. 바로바이너리파일을 16 진수

More information

윤성우의 열혈 TCP/IP 소켓 프로그래밍

윤성우의 열혈 TCP/IP 소켓 프로그래밍 C 프로그래밍프로젝트 Chap 22. 구조체와사용자정의자료형 1 2013.10.10. 오병우 컴퓨터공학과 구조체의정의 (Structure) 구조체 하나이상의기본자료형을기반으로사용자정의자료형 (User Defined Data Type) 을만들수있는문법요소 배열 vs. 구조체 배열 : 한가지자료형의집합 구조체 : 여러가지자료형의집합 사용자정의자료형 struct

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

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4> 쉽게풀어쓴 C 언어 Express 제 2 장프로그램개발과정 통합개발환경 통합개발환경 (IDE: integrated development environment) 에디터 + 컴파일러 + 디버거 Visual C++: 이클립스 (eclipse): Dev-C++: 마이크로소프트제작 오픈소스프로젝트 오픈소스프로젝트 통합개발환경의종류 비주얼 C++(Visual C++)

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

교육지원 IT시스템 선진화

교육지원 IT시스템 선진화 Module 5: Installation of Development Tools ESP30076 임베디드시스템프로그래밍 (Embedded System Programming) 조윤석 전산전자공학부 주차별목표 툴체인 (Toolchain) 또는크로스컴파일러설치하기 타겟보드와의통신설정하기 기타시스템툴설치하기 2 툴체인 (Toolchain) 이란? 크로스컴파일러를설치해야하는이유

More information

untitled

untitled if( ) ; if( sales > 2000 ) bonus = 200; if( score >= 60 ) printf(".\n"); if( height >= 130 && age >= 10 ) printf(".\n"); if ( temperature < 0 ) printf(".\n"); // printf(" %.\n \n", temperature); // if(

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

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

C 프로그래밊 개요

C 프로그래밊 개요 구조체 2009 년 5 월 19 일 김경중 강의계획수정 일자계획 Quiz 실습보강 5 월 19 일 ( 화 ) 구조체 Quiz ( 함수 ) 5 월 21 일 ( 목 ) 구조체저녁 6 시 5 월 26 일 ( 화 ) 포인터 5 월 28 일 ( 목 ) 특강 (12:00-1:30) 6 월 2 일 ( 화 ) 포인터 Quiz ( 구조체 ) 저녁 6 시 6 월 4 일 ( 목

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