RISC-V/인터럽트 콘트롤러 (2) 썸네일형 리스트형 [RISC-V] 리눅스 커널 - local_irq_enable() 함수의 역할과 sstatus.sie (로컬 인터럽트 설정) 리눅스 커널에서는 로컬 인터럽트(local interrupt)를 활성화하거나 비활성화할 때 사용하는 API 함수들이 있습니다: - local_irq_enable() - local_irq_disable() 코드 분석: preempt_schedule_irq() 함수이제 preempt_schedule_irq() 함수의 일부 코드를 살펴보겠습니다:asmlinkage __visible void __sched preempt_schedule_irq(void){ enum ctx_state prev_state; /* Catch callers which need to be fixed */ BUG_ON(preempt_count() || !irqs_disabled()); prev_state = exception_ente.. [RISC-V] 인터럽트 콘트롤러(Interrupt Controller)의 구조 - PLIC, CLIC RISC-V 아키텍처에서는 2가지 타입의 인터럽트 콘트롤러가 있다:PLIC (Platform-level Interrupt Controller)CLIC (Core-local Interrupt Controller)아래 그림을 보면서 전체 구조를 확인하자:PLIC는 외부 퍼리퍼럴 디바이스에서 유발되는 인터럽트를 받아서, RISC-V Hart에 전달(Routing)하는 역할을 한다. RISC-V Hart(Core)는 인터럽트가 유발됐다는 사실을 확인한 후, 익셉션을 유발한다. CLIC는 RISC-V Hart 내부에 존재한다. 타이머나 Software generated interrupt를 유발하는데 주로 사용된다. CLIC를 통해서 인터럽트가 유발되면 RISC-V Hart는 역시 익셉션을 유발한다. 퍼리퍼럴에서 .. 이전 1 다음