Presentation is loading. Please wait.

Presentation is loading. Please wait.

Embedded Linux Kernel 2.6 - Porting & Device Driver - 유柳 명明 환桓유柳 명明 환桓 [  ]

Similar presentations


Presentation on theme: "Embedded Linux Kernel 2.6 - Porting & Device Driver - 유柳 명明 환桓유柳 명明 환桓 [  ]"— Presentation transcript:

1 Embedded Linux Kernel 2.6 - Porting & Device Driver - 유柳 명明 환桓유柳 명明 환桓 [  ] yoo@netplug.co.kr

2 www.netplug.co.kr NETPLUG>>> Embedded Linux Kernel 2.6 Porting & Device Driver page 목 차 (Index) 1 임베디드 리눅스 관련 최신 경향 커널 2.6 포팅 2 3 커널 2.6 기반 디바이스 드라이버 질의 응답 4 ATMEL AVR ATmega128 based Embedded Software Education Solution DK128 Full Set Samsung S3C2440A(ARM9) based ARM & Embedded OS Education Solution DK-ARM-2440 Kit

3 www.netplug.co.kr NETPLUG>>> Embedded Linux Kernel 2.6 Porting & Device Driver page 1 임베디드 리눅스 관련 최신 경향 _#1 : 삼성전자

4 www.netplug.co.kr NETPLUG>>> Embedded Linux Kernel 2.6 Porting & Device Driver page 1 임베디드 리눅스 관련 최신 경향 _#2 : 구글 (Google)

5 www.netplug.co.kr NETPLUG>>> Embedded Linux Kernel 2.6 Porting & Device Driver page 1 임베디드 리눅스 관련 최신 경향 _#3 : Paradigm Shift LinuxWin CE Ports Networks Tool-chain GUI MobileNetwork GUI Networks ex) 휴대폰, 차세대 가전기기 ex) 홈 게이트웨이, 로봇

6 www.netplug.co.kr NETPLUG>>> Embedded Linux Kernel 2.6 Porting & Device Driver page 2 커널 2.6 포팅 이론적인 포팅 절차 실무에서의 포팅 절차  Original Kernel  ARM Core Patch Target Board Patch  Reference Kernel  ARM Core Patch  Target Board Patch  XScale Core Patch  Why? 1) 시간 2) 기능 구현 여부 : ex) SDIO, BlueTooth, CF I/O mode 3) 성능, 안정성

7 www.netplug.co.kr NETPLUG>>> Embedded Linux Kernel 2.6 Porting & Device Driver page 3 커널 2.6 기반 디바이스 드라이버 _#1 : 결과물의 차이 Kernel 2.4Kernel 2.6 확장자 *.o (ELF relocatable)*.ko (ELF relocatable) Makefile User Application 용 MakefileKernel 용 Makefile 문법 int dev_open() int dev_release() struct file_operations dev_fops Work Queue USB FIQ, IRQ

8 www.netplug.co.kr NETPLUG>>> Embedded Linux Kernel 2.6 Porting & Device Driver page 3 커널 2.6 기반 디바이스 드라이버 _#2 : Makefile 차이 Kernel 2.4Kernel 2.6 CC = arm-linux-gcc KERNEL_INC = /root/2.4.20/include CFLAGS = -DMODULE –D__KERNEL__ -I$(KERNEL_INC) DEV_SRC = driver_src APP_SRC = user_app all: $(DEV_SRC).o $(APP_SRC) $(SRC).o: $(SRC).c $(CC) $(CFLAGS) -c $(SRC) $(APP_SRC) : $(APP_SRC).c $(CC) $(APP_SRC).c -o $(APP_SRC) clean : rm -f *.o $(APP_SRC) CC := arm-linux-gcc KERNEL := /root/2.6.20 obj-m := driver_src.o APP_SRC := user_app #PWD := `pwd` PWD := $(shell pwd) default: $(APP) $(MAKE) -C $(KERNEL) SUBDIRS=$(PWD) modules $(APP_SRC): $(APP_SRC).c $(CC) $(APP_SRC).c -o $(APP_SRC) clean: rm -f *.ko *.mod.*.*.cmd.tmp* *.o rm -f $(APP_SRC)

9 www.netplug.co.kr NETPLUG>>> Embedded Linux Kernel 2.6 Porting & Device Driver page 3 커널 2.6 기반 디바이스 드라이버 _#3 : 문법 차이 Kernel 2.4Kernel 2.6 int device24_open() { printk(); MOD_INC_USE_COUNT; return 0; } int device26_open() { printk(); return 0; } int device24_release() { printk(); MOD_DEC_USE_COUNT; return 0; } int device26_release() { printk(); return 0; } struct file_operations device24_fops = { read: device24_read, write: device24_write, open: device24_open, ioctl: device24_ioctl, release: device24_release, }; struct file_operations device26_fops = {.open = device26_open,.release = device26_release,.read = device26_read,.write = device26_write,.ioctl = device26_ioctl, };

10 www.netplug.co.kr NETPLUG>>> Embedded Linux Kernel 2.6 Porting & Device Driver page 3 커널 2.6 기반 디바이스 드라이버 _#4 : 그 외 Kernel 2.4Kernel 2.6 Task Queue Work Queue --> 선점 (Preemption) 지원 Only IRQ InterruptBoth FIQ, IRQ Interrupt support USB support ALSA (Advanced Linux Sound Architecture) support 1) GUI --> Vector Graphics 2) Java --> JavaFX 3) Development Environment --> VMWare  Check! $KERNEL/arch/arm/kernel/

11 www.netplug.co.kr NETPLUG>>> Embedded Linux Kernel 2.6 Porting & Device Driver page 4 질의 응답


Download ppt "Embedded Linux Kernel 2.6 - Porting & Device Driver - 유柳 명明 환桓유柳 명明 환桓 [  ]"

Similar presentations


Ads by Google