Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

11105
637
415734


태그 : __irq_svc 요약보기전체보기목록닫기

1

[리눅스커널][인터럽트]인터럽트 벡터에서 스택 푸쉬 확인하기

프로세스가 실행되는 도중 인터럽트가 발생하면 인터럽트 벡터로 프로그램 카운터를 브랜치합니다. 인터럽트 벡터가 가장 먼저 하는 일은 무엇일까요? 바로 실행 중인 프로세스의 레지스터 세트를 스택 공간에 저장(푸시)하는 것입니다. 그렇다면 인터럽트 벡터에서 이런 동작을 수행하는 이유는 무엇일까요? 프로세스의 실행 정보를 백업하기 위해서입니다. 이번에...

[리눅스커널][인터럽트] 인터럽트 벡터 분석하기

커널 모드에서 인터럽트가 발생하면 ARMv7 프로세서는 인터럽트 벡터에 위치한 vector_irq 레이블을 통해 __irq_svc 레이블로 브랜치합니다. 이번에는 __irq_svc 레이블 코드를 분석해 세부 처리 방식을 알아보겠습니다. * 아래 강의 동영상에서 관련 내용을 확인할 수 있습니다. "이 포스팅이 유익하다고 생각되시면 댓글로...

[라즈베리파이] 인터럽트 백터 - 스택 푸쉬

#리눅스 커널: 인터럽트인터럽트 소개인터럽트 컨택스트   인터럽트 컨택스트란   in_interrupt란   인터럽트 컨택스트에서 스케줄링을 하면?인터럽트 핸들러는 누가 언제 호출할까?   인터럽트 벡터 분석   인터럽트 벡터 스택 푸시  &nbs...

[라즈베리파이] 인터럽트 백터 어셈블리 코드 및 동작 분석

인터럽트가 발생하면 __irq_svc 벡터로 점프합니다. 물론 해당 프로세스는 하던 일을 멈출 수 밖에 없는데요.그럼 인터럽트 벡터에서 어떤 동작을 하는 지 어셈블리 코드를 분석하겠습니다.#__irq_svc 코드 리뷰[1]: 스택 공간을 0x4C 바이트만큼 확보합니다.[2]--[3]: 현재 실행 중인 레지스터 R0부터 R14, PC까지 스택에 푸쉬합니다...

ARM32 - 프로세스(Process) preempt_disable(), preemption 스케줄(Schedule) 조건 분석

저번 시간에 preempt_disable() 함수 호출로 커널 패닉이 일어나는 문제가 있었는데요.이 매크로 함수와 preemption의 관계에 대해서 좀 더 알아보고자 해요.preemption은 리눅스 커널 핵심 개념 중의 핵심이죠.preempt_disable() 함수를 호출하면 스택 주소를 꺼내와서, current_thread_info에 있는 pree...
1