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

Slides:



Advertisements
Similar presentations
Lecture 101 Lecture 10: Kernel Modules and Device Drivers ECE 412: Microcomputer Laboratory.
Advertisements

Device Drivers. Linux Device Drivers Linux supports three types of hardware device: character, block and network –character devices: R/W without buffering.
RT_FIFO, Device driver.
Lecture for Lab 3, Exp1 of EE505 (Developing Device Driver) T.A. Chulmin Kim CoreLab. Mar, 11, 2011 [XenSchedulerPaper_Hotcloud-commits] r21 - /
Εργαστήριο Λειτουργικών Συστημάτων Φροντιστήριο 6–Device Drivers Ντίρλης Νικόλαος.
Computer System Laboratory
What is an operating system? Is it software?
Program Development Tools The GNU (GNU’s Not Unix) Toolchain The GNU toolchain has played a vital role in the development of the Linux kernel, BSD, and.
Hands-on with the Sitara Linux SDK This presentation provides a hands-on overview of the Sitara Linux SDK. It focuses on the software and tools found in.
Embedded Systems Programming Networking on the puppeteer.
Surrey Space Centre, University of Surrey, Guildford, Surrey, GU2 7XH ESA Wireless Sensor Motes Study George Prassinos, SSC, University of Surrey.
Students:Gilad Goldman Lior Kamran Supervisor:Mony Orbach Part A Presentation Network Sniffer.
Printed Circuit Board System Block Diagram:Schematic Pin Mapping Power Supply Vin Min: 3.2V Vin out: 9V Vin Max: 3.4 V Frequency:1600kHz Finite Element.
Buildroot CS-423 Dick Steflik. buildroot uClibc – C library for developing for embedded Linux –much smaller than GNU C tools to make a cross-compilation.
Building an Application Server for Home Network based on Android Platform Yi-hsien Liao Supervised by : Dr. Chao-huang Wei Department of Electrical Engineering.
Robotics Research Laboratory Louisiana State University.
1 THE ARCHITECTURE FOR THE DIGITAL WORLD TM THE ARCHITECTURE FOR THE DIGITAL WORLD Embedded Linux for ARM Architecture.
CS 153 Design of Operating Systems Spring 2015 Lecture 24: Android OS.
Loadable Kernel Modules Dzintars Lepešs The University of Latvia.
Kernel module programming Nezer J. Zaidenberg. reference This guide is built on top of The Linux Kernel Module Programming Guide The guide is available.
Operating System Program 5 I/O System DMA Device Driver.
Introduction of Tizen : Tizen Overview Chan Seok Kang 2013/03/21.
Android Audio System Introduction
Introduction to Embedded Software Development School of software Engineering Introduction to Windows CE.
Introduction Characteristics of USB System Model What needs to be done Platform Issues Conceptual Issues Timeline USB Monitoring 2 nd Update – 7 th February.
Porting Operating Systems Phan Duy Hùng (PhD) ES Lecturer – Hanoi FPT University.
Sogang University Advanced Operating Systems (Linux Module Programming) Sang Gue Oh, Ph.D.
Kernel Modules. Kernel Module Pieces of code that can be loaded and unloaded into the kernel upon demand. Compiled as an independent program With appropriate.
ARM 7 & ARM 9 MICROCONTROLLERS AT91 1 Development Tools & Partners.
Unit - VI. Linux and Real Time: Real Time Tasks Hard and Soft Real Time Tasks Linux Scheduling Latency Kernel Preemption Challenges in Kernel Preemption.
 Introduction  System Architecture  ISP1761 USB Host Controller P 彭治 民.
Real-Time Embedded Operating System for a SoC System Hsung-Pin Chang Department of Computer Science National Chung Hsing University.
Implementation of Embedded OS Lab3 Linux Kernel Modules.
Operating Systems CMPSC 473 Processes August 31, Lecture 3 Instructor: Bhuvan Urgaonkar.
LOGO System Call. Introduction System call is the mechanism used by an application program to request service from the OS. Users use it to communicate.
Linux Device Driver 2009/04/08. Reference Book Another Reference Book Embedded Linux Primer: A Practical, Real-World Approach By Christopher Hallinan.
Application of XSBase270 and FPGA Presenter : Ming-Hsien Tsai.
Interfacing Device Drivers with the Kernel
Introduction to the Linux Kernel 2.6 For The Fraser Valley Linux Users Group By Alan Bailward.
Mobile Application Development with ANDROID Umang Patel(6537) LDCE.
Lab 12 Department of Computer Science and Information Engineering National Taiwan University Lab12 – Driver 2014/12/16 1 /21.
Linux development Lection What we gonna do today Root privileges Software packages Managing software packages Build procedures Build components.
ICOM Noack Linux I/O structure Device special files Device switch tables and fops How the kernel finds a device Parts of a device driver or module.
Implementation of Embedded OS
Interrupts and Interrupt Handling David Ferry, Chris Gill CSE 522S - Advanced Operating Systems Washington University in St. Louis St. Louis, MO
Android operating system N. Sravani M. Tech(CSE) (09251D5804)
Linux Sound Drivers Framework
Experimental Software Engineering Course for Training Practitioners in Embedded Real-Time Systems Real-Time Systems LAB, School of Electronic Engineering,
© D. J. Foreman, Structure of an O/S. © D. J. Foreman, Overview  Required functionality –Handle interrupts –Manage resources Processes.
Computer System Structures
Device Driver_Skeleton
#FOSDEM Februari 4, 2017 brabo
Interrupts and Interrupts Handling
NEWS LAB 薛智文 嵌入式系統暨無線網路實驗室
chapter 6- Android Introduction
Mobile Operating System
Computer System Laboratory
Chapter 4 – Introduction to Operating System Concepts
CO6025 Advanced Programming
Linux Kernel Driver.
What is an Operating System?
Computer Software CS 107 Lecture 2 September 1, :53 PM.
Windows Development Dynadata Copyright, 2014 © DynaData S.A. 1/10.
A UNIX OPERATING SYSTEM
Intro to Kernel Modules and /proc
Implementation of Embedded OS
Computer System Laboratory
Loadable Kernel Modules
A very basic introduction
Interrupts and System Calls
Presentation transcript:

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

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

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

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

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) 홈 게이트웨이, 로봇

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) 성능, 안정성

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

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

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, };

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/

NETPLUG>>> Embedded Linux Kernel 2.6 Porting & Device Driver page 4 질의 응답