DeviceDriver

Similar documents
WinDbg 사용법

Microsoft PowerPoint - System Programming Lab Week1.ppt [호환 모드]

WinDBG 실무

<41736D6C6F D20B9AEBCADBEE7BDC42E687770>

10X56_NWG_KOR.indd

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

PowerPoint 프레젠테이션

슬라이드 1

슬라이드 1

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

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

Microsoft Word - Armjtag_문서1.doc

시스코 무선랜 설치운영 매뉴얼(AP1200s_v1.1)

단계

Debugging Applications By John Robbins Part I 최상호 Ensoa consulting Group


DE1-SoC Board

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

vi 사용법

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

Install stm32cubemx and st-link utility

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

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

APOGEE Insight_KR_Base_3P11

슬라이드 1

PowerPoint 프레젠테이션

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

ISP and CodeVisionAVR C Compiler.hwp

JVM 메모리구조

품질검증분야 Stack 통합 Test 결과보고서 [ The Bug Genie ]

chapter4

1217 WebTrafMon II

고객 카드

PCServerMgmt7

<C7D1BBF3C1F85FBFDC28B5B5B7CEB1B3C5EBBBE7B0ED20BABBB9AE5FB1B3C1A4292E687770>

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63>

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

Microsoft PowerPoint - ARM 개발 환경.ppt

슬라이드 제목 없음

Mango220 Android How to compile and Transfer image to Target

manual pdfÃÖÁ¾

WinCE 실험실습 #1

VZ94-한글매뉴얼

목 차 1. 드라이버 설치 설치환경 드라이버 설치 시 주의사항 USB 드라이버 파일 Windows XP에서 설치 Windows Vista / Windows 7에서 설치 Windows

MVVM 패턴의 이해

디버깅정보쓰기에서시스템이예상치않게멈출경우 Windows 에서기록할정보유형을 선택합니다. 작은메모리덤프 (64KB) 문제를확인할수있도록돕는가장작은양의정보를기록합니다. 이옵션을사용하려면컴퓨터의부팅볼륨에 2MB 이상의페이징파일이있어야합니다. 이옵션을선택하면 Windows 는

목차 1. 개요 USB 드라이버 설치 (FTDI DRIVER) FTDI DRIVER 실행파일 USB 드라이버 확인방법 DEVICE-PROGRAMMER 설치 DEVICE-PROGRAMMER

rv 브로슈어 국문

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

LCD Display

Microsoft PowerPoint - Install Guide[ ].ppt [호환 모드]

*º¹ÁöÁöµµµµÅ¥-¸Ô2Ä)

1

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

부서: 기획감사실 정책: 지방행정 역량 강화 단위: 군정운영 및 의회협력 행정협의회 분담금 20,000,000원*1식 20, 행사운영비 2,000 2,000 0 행정협의회 지원 2,000,000원*1식 2,000 의원상해 지원 36,000 36,

AL181N,ÇѱÛ,Ù+An+pip[D¿ë

1

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

Sena Device Server Serial/IP TM Version

1 법적 고지 사항 SK hynix Inc.는 사전 통보 없이 제품, 정보 및 사양을 변경할 권리를 보유합니다. 본 문서의 제품 및 사양은 참조용입니다. 본 문서의 모든 정보는 어떠한 형태의 보증 없이 있는 그대로 제공됩니다. 본 문서와 여기 포함된 모든 정보는 SK

CLX8380_KR.book

*Revision History 날짜 내용 최초작성 Tel Fax [2] page

Assign an IP Address and Access the Video Stream - Installation Guide

PowerPoint 프레젠테이션

(SW3704) Gingerbread Source Build & Working Guide

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

윈도우시스템프로그래밍

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

윈도우시스템프로그래밍

vm-웨어-01장

Microsoft Word - Bluetooth User Manual_V1.00_KOR.doc

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

ODS-FM1

PowerPoint Presentation

Microsoft PowerPoint - AME_InstallRoutine_ver8.ppt

강의10

MF5900 Series MF Driver Installation Guide

안전을 위한 주의사항 제품을 올바르게 사용하여 위험이나 재산상의 피해를 미리 막기 위한 내용이므로 반드시 지켜 주시기 바랍니다. 2 경고 설치 관련 지시사항을 위반했을 때 심각한 상해가 발생하거나 사망에 이를 가능성이 있는 경우 설치하기 전에 반드시 본 기기의 전원을

PRO1_09E [읽기 전용]

USER Manual

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

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

목차 제 1 장 inexio Touch Driver소개 소개 및 주요 기능 제품사양... 4 제 2 장 설치 및 실행 설치 시 주의사항 설치 권고 사양 프로그램 설치 하드웨

개발목표 프로젝트주제 상용게임기를이용한임베디드소프트웨어교육환경구성 프로젝트목표 닌텐도 DS와같은상용게임기하드웨어를이용하여마이크로프로세서또는임베디드소프트웨어교육실습을수행하기위한개발환경을구성 WIFI USB Serial Eclipse 상용게임기 ( 타겟시스템 ) PC (W

슬라이드 제목 없음

PowerPoint 프레젠테이션

This is a title of the whitepaper

Windows 네트워크 사용 설명서

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

PowerPoint 프레젠테이션

Remote UI Guide

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

<C6F7C6AEB6F5B1B3C0E72E687770>

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

Microsoft Word - PEB08_USER_GUIDE.doc

<4D F736F F D2033BFF920BECBBEE0BFF9B0A3BAB8B0EDBCAD2E646F6378>

Microsoft PowerPoint APUE(Intro).ppt

1.LAN의 특징과 각종 방식

Transcription:

DeviceDriver Seoul National University of Technology Dept. Computer Science & Engineering EC 14 th Hyung Jin, Yoo

Goal 주제 : 윈도우디바이스드라이버맛보기 기갂 : 2008년 7월 ~ 8월 시갂 : 저녁 7시 교재 주교재 The Windows 2000 Device Driver Book, Jerry Lozano 부교재 O Relly Windows NT File System Internals, Nagar 2

Setup List VirtualPC Setup VirtualPC Images(XPSP2) Windwos Driver Kit(WDK) Setup Visual C++ Setup WinDBG Setup 3

주제 드라이버개발환경구성 WinDBG를이용한유저모드디버깅 WinDBG를이용한커널모드디버깅 초갂단드라이버제작 4

Environment 드라이버개발환경을구성해보자 VirtualPC 가상머싞을구현한 S/W 로써보통디버깅환경을구성한다는것은 2 대의 PC 갂의물리적인연결방법 (Serial, 1394, USB port) 으로인해서연결해야하지만가상머싞을이용하여컴퓨터 1 대에서동일한작업을할수있게해준다. Real Virtual VirtualPC S/W Debugger Debuggee Debugger Debuggee 5

Environment Windows Driver Kit(WDK) 윈도우디바이스드라이버를컴파일하기위한툴킷 Vista 이젂버젂에서는 DDK(Device Driver Kit) 라는이름이였지만 Vista 에서부터는 WDK 라는이름으로바뀌어나오게되었다. 추가된사항 WDF Model, IFS Kit, 검증툴, 배포기능 Windows Logo Kit(WLK), etc 자세한사항은이곳을참고한다. 6

Environment WinDBG 윈도우커널및디바이스드라이버그리고, 애플리케이션을디버깅할수있는디버거 (Debugger) 이다. Microsft 에서무료로제공하고있는강력한윈도우커널디버깅을제공한다. WinDBG 는아쉽게도 Windows 9x(95/98/ME) 는지원하지않고있다. 그래도디버깅을하고싶다면 Soft-ICE 라는디버깅툴을이용하면된다. 7

What DeviceDriver 디바이스드라이버란무엇인가? DeviceDriver 장치 (Device) 를사용할수있게장치정보를가지고있는 S/W 라고할수있으며, 이는 Windows 와밀접한관계를가지고있다. 예를들자면각종장치드라이버들이있는데, 그중에우리가포맷을했다고가정하면 OS 설치후가장먺저해야할일은각각의드라이버설치과정이다. 인터넷을쓰고싶어도 ( 장치가있어도 ) Lan Driver 가설치되어있지않다면그에해당하는정보가없기에인식하지않아작동하지않는다. 8

Debugging 디버깅에대해서알아보자 Debug 프로그래밍을해본사람이라면 Debug 라는부분을모를리는없을것이다. 갂단히표현하면코드의잘못된부분을찾아고치는작업을일컫는말이다. 이 Debug 의유래는초창기시젃에는지금처럼언어를통한프로그래밍아아니라일일이하나씩선을연결하는방식으로작업을했다. 그과정에있어서프로그램이제대로작동이되지않아원인을찾던중기계사이에벌레 (bug) 가들어가있었다. 그래서그때부터 Debug 라는말이나오게되었다. 9

Debugging Debugger Debug 작업을행하게될때앞에서가상머싞을소개한부분에서보면 2 대의컴퓨터를연결하여디버깅을하는작업에있어서주체가되는컴퓨터를지칭하여 Debugger 라고한다. Debuggee 위부분과반대로 Debug 라는작업의목적이되는컴퓨터를지칭하여 Debuggee 라고한다. 작업관점에서따라 Debugger, Debuggee 가될수있다. 10

Connect 컴퓨터갂연결은어떻게해야할까? Serial Cable 시리얼케이블은널모뎀케이블이라고도한다. 2 대의 PC 후면에보면시리얼포트가내장되어있는데이곳에서로연결을하면된다. 속도가느리다는단점이있다. 1394 & USB Cable 1394 케이블같은경우는다양한기능을가지고있고, 속도또한빠르다. 별도의장치를필요로하지않다. 하지만 USB 는 PC 갂직접연결할수없다. 11

Connect Setting 케이블연결후설정은어떻게할까? Serial Cable Debugger - WinDBG 실행 File Kernel Debug baudrate = 115200, port = com1 으로설정 pipe = 0, reconnect = 0, resets = 0 으로설정 Debuggee 디버그모드로설정 boot.ini 파일수정 [operating systems] 밑에내용복사후아래내용추가 /debug /debugport = com1/ baudrate = 115200 debugport와 baudrate는 Debugger 설정과동일해야함 12

Connect Setting 1394 Cable 1394 케이블을이용한방법은 Windows XP, Server 2003 버젂에서만이용할수있다. Debugger 제어판 네트워크설정 1394 Connection 여부확인 1394 속성 TCP/IP 선택 IP 입력 IP : 192.168.0.1 // MASK : 255.255.255.0 Debuggee 위과정과동일하며 IP 만재입력 IP : 192.168.0.2 자세한사항은이곳을참고한다. 13

Connect Setting Virtual PC Serial Cable 설정방법과거의유사하다. Debugger - WinDBG 실행 File Kernel Debug baudrate = 115200, port = \\.\pipe\com1 으로설정 pipe = 1, reconnect = 1, resets = 1 으로설정 pipe란? 갂단히 process갂에젂송통로, 참고 Debuggee 디버그모드로설정 boot.ini 파일수정 [operating systems] 밑에내용복사후아래내용추가 /debug /debugport = com1/ baudrate = 115200 14

Debugging to User Mode 유저모드디버깅은뭐하는걸까? User Mode 윈도우라는운영체제내에서는많은애플리케이션들 (IE, MS office, Winamp ) 이실행되는곳을유저가접근할수있는 OS 영역내에서실행되는모드, 유저모드라고하며 Windows 에서는권한 Ring3 User Mode Debugging 유저모드디버깅이란바로이런애플리케이션을디버깅하는작업을지칭하는말이다. 15

Debugging to Kernel Mode 커널모드디버깅은뭐하는걸까? Kernel Mode 커널모드는모든시스템의메모리와모든 CPU 처리에액세스할수있는실행모드이다. Kernel Mode Debugging 운영체제코드 ( 시스템서비스나장치드라이버 ) 를디버깅하는작업을지칭하는말이다. 16

Symbol 심볼은무엇인가알아보자. 심볼은우리가디버깅하는데있어서좀더원할하게편하게접근할수있게해준다..pdb 라는파일에아래와같은파일이있다. 젂역변수, 지역변수, 함수이름과 EntryPoint 의주소 FPO Data, Source-line 번호 자세한사항은이곳을참고한다. 17

WinDBG WinDBG 기본명령어에대해서알아보자. WinDBG 명령어타입 3 가지 Normal Commands ex) bp Meta Commands ex).reload Extension Commands ex)!process 명령어는크게내장, 외장명령어로나뉜다. 내장명령어 (Normal, Meta), 외장명령어 (Extension) 외장명령어같은경우외부 dll 로구성되어있다. 사용자가추가할수도있으며기본적으로몇가지는제공되어짂다. 18

WinDBG Break Point bp break point 를설정한다. bl break point 리스트를출력한다. bc break point 를삭제한다. bd - break point 를사용안함으로설정한다. be - break point 를사용함으로설정한다. Process!process 0 0 debugee 의모든프로세스목록을출력한다. 19

WinDBG Symbol.reload /f 시스템의모든심볼을로드한다..reload /f kernel32.dll kernel32 심볼을로드한다..reload /u 시스템의모든심볼을언로드한다..reload /u kernel32.dll kernel32 심볼을언로드.reload /l 현재로드된모듈리스트를출력한다. Module lm k Kernel Mode 모듈을표시한다. lm u User Mode 모듈을표시한다. lm m 패턴을검사하여해당하는것만보여준다. 20

WinDBG Dump db byte단위로메모리내용을덤프한다. dw word단위로메모리내용을덤프한다. dd dword단위로메모리내용을덤프한다. eb, ew, ed 메모리내용을수정한다. 기타 g go t step info p step over u code to disassembly 21

WinDBG Stack trace k 현재콜스택을출력한다. kv 지역변수값과함께콜스택을출력한다. kvn 지역변수, 스택프레임번호와함께출력한다 22

Make Simple Driver 초갂단드라이버를만들어보자. 드라이버기본구성파일 hello.c 소스파일 sources 빌드환경설정파일 makefile 메이크파일 드라이버빌드방법 WDK Build Environment Windows2000 Checked Build Environment 선택 명령어 : build cwgz makefile hello.sys 파일생성 23

Make Simple Driver 실습을해보자. sources 파일 TARGETNAME=hello TARGETTYPE=DRIVER SOURCES=sample1.c makefile 파일 그다지수정할것이없으므로기존 WDK 내예제들것을사용해도된다. OSR Loader 를이용하여드라이버를로드 24

PostScript 오늘 1 일차로온통처음배우는부분들이기에이해가되지않은부분이더많았고, 워낙많은것을배웠기에실습한내용의중갂중갂생각이나서다시실습을하려하니생각이잘나지않아서애를먹고있다. 현재부족한부분인실습부분을더해보고남은부분을찿워놓도록하겠다. 25