Linux Kernel(4.19) Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

52189
2265
156763


태그 : 라즈베리 요약보기전체보기목록닫기

1 2

[리눅스] 라즈베리 파이 실습을 위한 준비물

라즈베리 파이를 설치하기에 앞서 다음과 같은 준비물이 필요합니다. 라즈베리 파이 USB 연결형 키보드 HDMI 케이블 충전기 마이크로 SD 카드 제가 썼던 라즈베리 파이와 주변 장치는 그림 2.1과 같습니다.  그림 라즈베리 파이와 주변 장치들각 목록은 다음과 같습니다.① 라즈베리 파이(이 책에서는 Rasp...

[리눅스커널][인터럽트] 인터럽트 디스크립터(struct irq_desc)에 대해서

인터럽트 디스크립터란프로세스마다 프로세스를 관리하는 태스크 디스크립터(struct task_struct)가 있습니다. 페이지도 페이지를 관리하는 페이지 디스크립터(struct page)가 있죠. 마찬가지로 리눅스 커널에서 발생하는 인터럽트 종류만큼 인터럽트 디스크립터가 있습니다. 만약 인터럽트 개수가 34개면 이를 관리하는 34개의 인터럽트 디스크립터가...

[리눅스커널][인터럽트] 인터럽트 핸들러 호출 코드 알아보기

이전 절에서 인터럽트가 발생하면 실행되는 인터럽트 벡터의 어셈블리 코드를 분석했습니다. 그런데 커널은 인터럽트 벡터부터 커널 내부 함수를 호출해 인터럽트 핸들러 함수를 처리합니다. 즉, 프로세스가 실행되는 도중 인터럽트가 발생하면 인터럽트 벡터인 __irq_svc 레이블로 브랜치하고 handle_irq_event_percpu() 함수까지 실행됩니다.&n...

[리눅스커널] 시간관리: msecs_to_jiffies 함수란

msecs_to_jiffies() 함수는 밀리초를 입력으로 받아 jiffies 단위 시각 정보를 반환합니다. 리눅스 커널에서 실행 시간 기준으로 흐름을 제어할 때 많이 씁니다.msecs_to_jiffies() 함수 세부 코드 분석에 앞서 이 함수를 왜 쓰는지 알아봅시다.당연한 이야기지만 개발자들은 실행 시간을 '초'나 '밀리 초' 단위로 생각하는 습관이...

[라즈베리파이] 커널 살펴보기 - 섹션 정보

아래 명령어로 라즈베리파이 소스 다운로드를 하고,git clone --depth=1 https://github.com/raspberrypi/linux.git크로스 컴파일러 툴을 설치한 다음에,git clone https://github.com/raspberrypi/tools커널 빌드를 하면 vmlinux을 추출할 수 있습니다.make ARCH=arm C...

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

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

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

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

[라즈베리파이] 인터럽트 핸들러에서 스택 덤프 저장

아래 패치를 적용하면 해당 프로세스의 스택 메모리 덤프를 stack_dump 배열에 저장합니다.인터럽트 처리가 마무리 된 후 프로세스 레벨에서 stack_dump 배열에 저장된 메모리 덤프를 커널 로그로 출력하면,인터럽트 벡터 심볼 __irq_svc과 스택에 푸쉬한 레지스터 정보를 모두 볼 수 있습니다.diff --git a/drivers/video/f...

[라즈베리파이] 커널 정보 확인 - Trace32

아래 Trace32 스크립트를 실행하면 라즈베리파이 커널 vmlinux를 Trace32에 올릴 수 있습니다.sys.cpu cortexa7sys.ud.load.elf vmlinux라즈베리파이 리눅스 커널 정보를 확인하겠습니다.각 섹션 정보는 아래와 같습니다.y.l.sec_____address________|path\section_______________...

[라즈베리파이] 커널 빌드 & 컴파일 환경 설정

라즈베리파이 리눅스 커널 컴파일 명령어 출처https://wikidocs.net/3243https://www.raspberrypi.org/documentation/linux/kernel/building.md소스 코드 다운로드 및 빌드 스크립트 작성아래와 같이 폴더를 하나 생성합니다./home001/austin.kim/src/raspberry_kernel...
1 2