본문 바로가기
3학년2학기/임베디드시스템

리눅스 디바이스의 이해

by hgglife 2019. 10. 19.

디바이스의 일반적인 하드웨어 구조

제어기(controller) + 장치 자체(device it self)

제어기

드라이버와 장치간의 인터페이스

제어 레지스터와 상태레지스터 내부버퍼로 구성된다

장치 자체

제어기를 통해 들어온 명령을 수행하고 결과를 알려줌

나의 이해 :  일반적으로 모니터가 좋은 예시라고 생각한다 모니터의 제어기에 출력물을 보여주고 모니터가 수행결과를 알려준다


드라이버에서 제어기 접근방식

memory mapped I/O

제어 레지스터가 메모리 주소와 연관되어 있다

메모리 read/write 연산을 이용하여 제어 레지스터 접근

special in/out instruction

in,out 명령을 이용 레지스터의 값을 가져온다다


CPU와 디바이스의 인터페이스

1. cpu에서 control register로 명령 전송

2. Deivec i/o interface가 상태 레지스터로 알려줌

3 레지스터의 갑을 가져온다

4. 레지스터에 값을 준다.


리눅스 디바이스의 이해

디바이스 드라이버 역활

디바이스 제어 및 동작

-하드웨어 기능을 제어 데이터 입출력


디바이스와 시스템 메모리간의 데이터 전달

- 컴퓨터에 장착된 여러 장치를 하나의 인터페이스로 연결하게 해주는 추상 데이터 타입

인터페이스(interface)는 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면이다. 즉, 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템을 의미한다. 컴퓨팅에서 컴퓨터 시스템끼리 정보를 교환하는 공유 경계이다. 이러한 교환은 소프트웨어, 컴퓨터 하드웨어, 주변기기, 사람 간에 이루어질 수 있으며, 서로 복합적으로 이루어질 수도 있다.

자료출처 -https://ko.wikipedia.org/wiki/%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4_(%EC%BB%B4%ED%93%A8%ED%8C%85)


디바이스의 분류 및 유형

1.문자디바이스

2.블록디바이스

3.네트워크 디바이스


리눅스 디바이스 정의

1.리눅스 디바이스 정의 필요 사항

-디바이스 그룹 (문자 블록 네트워크 중 한개)

-Major number ( 하드디스크,com,메모리)

-- Major number는 디바이스와 연관된 드라이버를 구별할때 사용

-minor number (하드디스크가 여러개일때 1,2,3,)

-minor number는 드라비어가 각 디바이스를 구분

예를들어 하드디스크는 하드디스크 드라이버과 마우스는 마우스 드라이버가 구별하기위해서 필요한게 major

 마우스 1번인지 2번인지 구별하기 위해서 필요한게 major이다

 


주번호 할당

이미 많은 장치 들의 주번호가 할당되어있다

새로운 장치는 할당되지 않은 번호로 사용가능하다


디바이스 파일

-디바이스 드라이버를 접근하는 통로

-장치 파일의 inode는 장치유형 주번호 부번호로 구성된다


디바이스 파일의 생성

mknod

mknod  /dev/file_name [b|c] major_number minor_number


디바이스 드라이버와 등록함수수

char driver는 register_chrdev()

device 를 file처럼 취급하고 접근하여 직접 read/write를 수행한다


Block driver 는 register_blkdev()

disk와 같이 file system을 기반으로 일정한 block단위로 data read/write 수행


Network driver  는 register_netdev()

network 의 physical layer 와 frame 단위의 데이터를 송수신

'3학년2학기 > 임베디드시스템' 카테고리의 다른 글

아두이노 기본설명  (0) 2019.10.20
문자 디바이스 드라이버 구조  (0) 2019.10.19
proc 파일 시스템 실험  (0) 2019.10.19
proc파일 시스템  (0) 2019.10.19
모듈 프로그램의 컴파일과 적재  (0) 2019.10.19

댓글