태그>인터럽트(총 70개의 글)
'인터럽트' 관련 최근글
-
- [Arm프로세서] GIC의 기본 기능
-
Arm Linux Kernel Hacks by AustinKim|2022/08/16 10:01
GIC는 Arm 사에서 디자인한 인터럽트 콘트롤러입니다. 다음 그림을 보면서 GIC의 구조를 배워봅시다. 그림 16.2 간략화한 GIC의 전체 구조 그림을 보면 가운데 박스에 GIC가 있습니다. 그림 왼쪽에 있는 ‘peri..
- [Arm프로세서] GIC의 기본 기능
-
- [Arm프로세서] GIC는 왜 배워야 할까?
-
Arm Linux Kernel Hacks by AustinKim|2022/08/16 10:00
Arm 아키텍처와 관련된 주제로 세미나를 진행하면 참석자들은 다음과 같은 질문을 종종 합니다. ● FIQ는 어떻게 설정할까? ● 시큐어 인터럽트는 어떻게 설정해야 할까? 이런 질문에 대해 답하려면 GIC(Generic Interrupt Controller)를 알아야 합니다. GI..
- [Arm프로세서] GIC는 왜 배워야 할까?
-
- [Arm프로세서] 인터럽트 콘트롤러의 기본 구조
-
Arm Linux Kernel Hacks by AustinKim|2022/08/04 06:39
인터럽트 콘트롤러가 필요한 이유를 알아봤으니 이어서 인터럽트 콘트롤러를 소개합니다. 다음 그림은 인터럽트 콘트롤러의 기본 구조도입니다. 그림 16.1 인터럽트 콘트롤러의 기본 구조 그림에서 가장 왼쪽에 ..
- [Arm프로세서] 인터럽트 콘트롤러의 기본 구조
-
- [Arm프로세서] GIC: 인터럽트 콘트롤러가 필요한 이유
-
Arm Linux Kernel Hacks by AustinKim|2022/08/03 15:28
인터럽트 콘트롤러가 필요한 이유는 무엇일까요? 컴퓨터는 다음과 같이 구성돼 있기 때문입니다. ● CPU ● 메모리 ● I/O 장치 마이크로 프로세서는 CPU와 메모리를 깊이 있게 다룹니다. 그런데 실제 고객이 사용하는 제품은 키보드나 마우스와 같..
- [Arm프로세서] GIC: 인터럽트 콘트롤러가 필요한 이유
-
- [리눅스커널] IPI(Inter Processor Interrupt) Call 요청 루틴(하이..
-
Arm Linux Kernel Hacks by AustinKim|2022/03/21 09:56
IPI(Inter Processor Interrupt)의 약자로 지정한 CPU 코어를 타겟으로 인터럽트(소프트웨어적)를 유발하는 매커니즘입니다. 이번 포스트에서는 리눅스 커널에서 IPI Call을 요청하는 루틴을 리뷰하겠습니다. IPI Call은 아키텍처에 의존적으로 처리되므로 하이 레벨과 로우..
- [리눅스커널] IPI(Inter Processor Interrupt) Call 요청 루틴(하이..
-
- [리눅스커널] 인터럽트: ftrace와 커널 로그로 인..
-
Linux Kernel(4.19) Hacks by AustinKim|2020/03/03 07:17
이번 절에서는 ftrace 로그를 분석하면서 커널이 인터럽트를 어떻게 처리하는지 알아봅시다. 리눅스 커널에서 커널 동작을 가장 정밀하게 담고 있는 로그는 뭘까요? 아마 많은 리눅스 전문가들은 ftrace라고 대답할 겁니다. ft..
- [리눅스커널] 인터럽트: ftrace와 커널 로그로 인..
-
- [리눅스커널] 인터럽트: 리눅스 커널에서의 인..
-
Linux Kernel(4.19) Hacks by AustinKim|2020/03/02 01:20
인터럽트가 발생했을 때 커널이 이를 처리하는 과정은 다음과 같이 3단계로 나눌 수 있습니다. 1 단계: 인터럽트 발생인터럽트가 발생하면 프로세스 실행을 중지하고 인터럽트 벡터로 이동합니다. 인터럽트 벡..
- [리눅스커널] 인터럽트: 리눅스 커널에서의 인..
-
- [리눅스커널] 인터럽트: 인터럽트를 잘 알아야 하는..
-
Linux Kernel(4.19) Hacks by AustinKim|2020/03/02 01:18
커널이 인터럽트를 처리하는 과정과 자료구조를 왜 잘 알아야 할까요? 인터럽트를 처리하는 방식이 시스템 전반에 큰 영향을 끼치기 때문입니다. 또한 리눅스 커널 시스템 전반을 잘 이해하기 위해서도 커널이 인터럽트를 어..
- [리눅스커널] 인터럽트: 인터럽트를 잘 알아야 하는..
-
- [리눅스커널] 인터럽트: 리눅스 커널이 처리하는..
-
Linux Kernel(4.19) Hacks by AustinKim|2020/03/02 01:15
앞에서 인터럽트에 대해 소개했으니 리눅스 커널에서 인터럽트를 처리하는 방식을 이해하기 위해 알아야 할 주요 개념을 소개합니다. 인터럽트 핸들러 인터럽트 벡터 인터럽트 디스크립터 인터럽트 ..
- [리눅스커널] 인터럽트: 리눅스 커널이 처리하는..
-
- [리눅스커널] 인터럽트: 'Unbalanced enable for IRQ' 메시지에 대해서
-
Linux Kernel(4.19) Hacks by AustinKim|2020/02/28 11:50
프로젝트를 개발하다 보면 다음과 같은 WARN() 메시지를 커널 로그로 볼 수 있다. Unbalanced enable for IRQ 23-[ cut here ]-WARNING: at kernel/irq/manage.c:437:NIP [c00000000016de8c] _enable_irq+0x11c/0x140LR [c00000000016de88] _enable_irq+0x118/0x140..
- [리눅스커널] 인터럽트: 'Unbalanced enable for IRQ' 메시지에 대해서
-
- [리눅스커널] 어떤 인터럽트 후반부 처리 기법을 ..
-
Linux Kernel(4.19) Hacks by AustinKim|2019/10/03 21:26
이전 소절에서 커널에서 지원하는 4가지 인터럽트 후반부 기법을 알아봤습니다. 그런데 여러분이 만약 인터럽트 후반부 기법을 결정해야 한다면 이 중 어떤 방식을 적용해야 할까요?인터럽트 발생 빈도와 인터럽트 후반부를 ..
- [리눅스커널] 어떤 인터럽트 후반부 처리 기법을 ..
-
- [리눅스커널][인터럽트] ftrace로 인터럽트 핸들러 함수를 바로 파악하기
-
Linux Kernel(4.19) Hacks by AustinKim|2019/04/12 09:35
커널을 처음 접하는 분들은 커널 소스를 분석하는 과정에서 수많은 걸림돌을 만납니다. 이 가운데 가장큰 걸림돌은 무엇일까요? 바로 현재 분석 중인 함수를 어디에서 호출하는지 모르겠다는 것입니다. 저도 커널 소스코드를 분석하다가 위와 같은 걸림돌을 만나 여러 번 포기한 적이..
- [리눅스커널][인터럽트] ftrace로 인터럽트 핸들러 함수를 바로 파악하기
-
- [리눅스커널][인터럽트] 인터럽트 디스크립터: 인터럽트 발생 횟수 확..
-
Linux Kernel(4.19) Hacks by AustinKim|2019/04/12 09:19
대부분 디바이스 드라이버는 인터럽트 핸들러로 하드웨어 디바이스와 통신합니다. 예를 들면 터치 디바이스에서 사용자가 터치를 입력하면 터치 디바이스에서 올려주는 인터럽트로 터치 입력이 발생했다고 알려줍니다. 디바이스 드라이버에서 인터럽트 핸들러를 등록한 후 해당 디..
- [리눅스커널][인터럽트] 인터럽트 디스크립터: 인터럽트 발생 횟수 확..
-
- [리눅스커널][인터럽트후반부] ftrace로 IRQ ..
-
Linux Kernel(4.14) Hacks by AustinKim|2019/02/28 23:38
이전 절에서는 ftrace 로 콜스택과 함께 인터럽트가 언제 발생하고 언제 IRQ 스레드를 깨우는지 알아봤습니다. 이번에는 실제 인터럽트 핸들러와 IRQ 스레드 핸들러 함수 실행 시간을 측정하는 방법을 소개합니다. 각 함수..
- [리눅스커널][인터럽트후반부] ftrace로 IRQ ..
-
- [리눅스커널] 라즈베리 파이에서 IRQ 스레드 생성..
-
Linux Kernel(4.14) Hacks by AustinKim|2019/02/28 05:05
지금까지 IRQ 스레드를 생성하면 커널 내부에서 다음과 같이 처리한다는 사실을 배웠습니다. request_threaded_irq() 함수를 호출하면 인터럽트 속성을 설정한다. 내부 함수에서 kthread_create() 함수를..
- [리눅스커널] 라즈베리 파이에서 IRQ 스레드 생성..