태그 : kernel 요약보기전체보기목록닫기
- [리눅스커널] IRQ 스레드 생성 예제 코드 분석 - 다른 리눅스 시스템(0)2019.04.12
- [리눅스커널] 인터럽트 후반부 처리: IRQ 스레드 소개(0)2019.04.12
- [리눅스커널][인터럽트] 인터럽트 발생은 언제 지연해야 할까? (0)2019.04.12
- [리눅스커널][인터럽트] 인터럽트 디스크립터: 인터럽트 발생 횟수 확인하기(0)2019.04.12
- [리눅스커널][인터럽트] 인터럽트 디스크립터(struct irq_desc)에 대해서(0)2019.04.12
- [리눅스커널][인터럽트] 인터럽트 핸들러 등록하기 - request_irq()(0)2019.04.12
- [리눅스커널][인터럽트] 인터럽트 핸들러 호출 코드 알아보기(0)2019.04.12
- [리눅스커널][인터럽트] 인터럽트 컨택스트: in_interrupt() 함수 코드분석(9)2019.04.12
- [리눅스커널][인터럽트] 인터럽트 컨택스트란 - in_interrupt()(0)2019.04.12
- [리눅스커널][가상파일시스템] 파일 객체: lseek() 함수 연산 세부 동작 분석 (0)2019.03.27
- 6. 인터럽트 후반부 처리
- 2019/04/12 21:06
6.3.3 다른 리눅스 시스템에서 IRQ 스레드 생성 예제 코드 분석라즈비안에선 92번 인터럽트를 처리할 한 개 IRQ 스레드만 생성합니다. 1개 IRQ 스레드만 생성하는 코드 밖에 없으니 이번에는 다른 리눅스 시스템에서 IRQ 스레드를 생성하는 예제 코드를 소개합니다이번에는 request_threaded_irq() 함수를 호출해서 IRQ 스레드를 생성...
- 6. 인터럽트 후반부 처리
- 2019/04/12 21:01
리눅스 커널을 익히는 과정에서 만나는 걸림돌 중 하나가 어려운 용어입니다. 어려운 개념을 낯선 용어로 설명하니 이해하기 어려운 것 같습니다. IRQ 스레드에 대해 소개하기 전 IRQ란 용어부터 알아볼까요? IRQ 스레드(threaded IRQ)란IRQ 스레드는 IRQ와 스레드의 합성어입니다. 먼저 IRQ에 대해서 알아볼까요? IRQ는 Inter...
- 5. 인터럽트
- 2019/04/12 10:34
디바이스 드라이버를 개발하다 보면 특정 상황에서 인터럽트가 발생하면 안 되는 조건이 있습니다.1. SoC에서 정의한 하드웨어 블록에 정확한 시퀀스를 줘야 할 경우2. 시스템이 유휴 상태에 진입하기 직전의 ‘시스템의 상태 정보’ 값을 저장하는 동작3. 각 디바이스 드라이버가 서스펜드 모드로 진입할 때 디바이스 드라이버에 데이터 시트에서 명시한 대로 정확한...
- 5. 인터럽트
- 2019/04/12 10:30
대부분 디바이스 드라이버는 인터럽트 핸들러로 하드웨어 디바이스와 통신합니다. 예를 들면 터치 디바이스에서 사용자가 터치를 입력하면 터치 디바이스에서 올려주는 인터럽트로 터치 입력이 발생했다고 알려줍니다. 디바이스 드라이버에서 인터럽트 핸들러를 등록한 후 해당 디바이스가 제대로 인터럽트를 발생시키는지 어떻게 알 수 있을까요? 이럴 때는 인터럽트 ...
- 5. 인터럽트
- 2019/04/12 10:23
인터럽트 디스크립터란프로세스마다 프로세스를 관리하는 태스크 디스크립터(struct task_struct)가 있습니다. 페이지도 페이지를 관리하는 페이지 디스크립터(struct page)가 있죠. 마찬가지로 리눅스 커널에서 발생하는 인터럽트 종류만큼 인터럽트 디스크립터가 있습니다. 만약 인터럽트 개수가 34개면 이를 관리하는 34개의 인터럽트 디스크립터가...
- 5. 인터럽트
- 2019/04/12 10:18
5.4.1 인터럽트 핸들러 등록 시 기본 파라미터해당 인터럽트가 발생하면 해당 인터럽트 핸들러 함수가 호출돼야 합니다. 이를 위해 디바이스 드라이버 코드에서 request_irq 함수을 써서 인터럽트 핸들러를 등록해야 합니다. 그럼request_irq 함수를 실제 어떻게 사용하는지 라즈베리안 리눅스 커널 코드를 잠깐 살펴보겠습니다. [drive...
- 5. 인터럽트
- 2019/04/12 10:14
이번에는 인터럽트 벡터에서 인터럽트 핸들러까지 이어지는 실행 흐름을 알아보겠습니다. * 아래 강의 동영상에서 관련 내용을 확인할 수 있습니다. "이 포스팅이 유익하다고 생각되시면 댓글로 응원해주시면 감사하겠습니다. "혹시 궁금한 점이 있으면 댓글로 질문 남겨주세요. 아는 한 성실히 답변 올려드리겠습니다!"...
- 5. 인터럽트
- 2019/04/12 10:06
5.2.3 in_interrupt() 함수란리눅스 커널이 실행할 때 수많은 함수가 각자 서로를 호출합니다. 어떤 함수는 프로세스 컨택스트에서 실행(커널 쓰레드)되는데 대부분 함수는 인터럽트 컨택스트, 즉 인터럽트 처리하는 도중 호출될 수 있습니다. 만약 현재 실행하는 코드가 인터럽트를 처리 중이면 더 빨리 처리해야겠죠? 인터럽트 서비스 루틴은 ...
- 5. 인터럽트
- 2019/04/12 10:02
- 13. 가상 파일 시스템
- 2019/03/27 13:49
파일 객체: lseek() 함수 연산 세부 동작 분석유저 공간에서 lseek() 함수를 호출하면 파일 쓰기 포인터 위치를 조절할 수 있습니다. 다음 예제 코드를 보면서 lseek() 함수 동작에 대해 살펴보겠습니다. 1 #include <unistd.h>2 #include <sys/types.h>3 #include...
최근 덧글