RASPBERRYPI
Posts
33 posts[라즈베리파이] 인터럽트 백터 어셈블리 코드 및 동작 분석
인터럽트가 발생하면 __irq_svc 벡터로 점프합니다. 물론 해당 프로세스는 하던 일을 멈출 수 밖에 없는데요.그럼 인터럽트 벡터에서 어떤 동작을 하는 지 어셈블리 코드를 분석하겠습니다. #__irq_svc 코드 리뷰[1]: 스택 공간을 0x4C 바이트만큼 확보합니다. [2]--[3]: 현재 실행 중인 레지스터 R0부터 R14, PC까지 스택에 푸쉬합니다. [4]: 0x80705398 메모리 공간에 있는 메모리 덤프 0x80c089ac를 로딩합니다. 0x80c089ac는 handle_arch_irq란 함수 포인터 역할을 하는 변수인데 이 변수에는 gic_handle_irq가 지정되어 있습니다.crash> p -x handle_arch_irqhandle_arch_irq = $3 = 0xc01
[라즈베리파이] 인터럽트 핸들러에서 스택 덤프 저장
아래 패치를 적용하면 해당 프로세스의 스택 메모리 덤프를 stack_dump 배열에 저장합니다.인터럽트 처리가 마무리 된 후 프로세스 레벨에서 stack_dump 배열에 저장된 메모리 덤프를 커널 로그로 출력하면,인터럽트 벡터 심볼 __irq_svc과 스택에 푸쉬한 레지스터 정보를 모두 볼 수 있습니다.diff --git a/drivers/video/fbdev/bcm2708_fb.c b/drivers/video/fbdev/bcm2708_fb.cindex 612293c..2623e0d 100644--- a/drivers/video/fbdev/bcm2708_fb.c+++ b/drivers/video/fbdev/bcm2708_fb.c@@ -713,9 +713,28 @@ static void bcm2708_fb_i
[라즈베리파이] 커널 정보 확인 - Trace32
아래 Trace32 스크립트를 실행하면 라즈베리파이 커널 vmlinux를 Trace32에 올릴 수 있습니다.sys.cpu cortexa7sys.u d.load.elf vmlinux 라즈베리파이 리눅스 커널 정보를 확인하겠습니다.각 섹션 정보는 아래와 같습니다.y.l.sec_____address________|path\section___________________________|acc|init|physicalP:80008000--8000826B|\\vmlinux\.head.text |R-X|L- |P:80100000--80707797|\\vmlinux\.text |R-X|L- |P:80707798--807077B3|\\vmlin
[라즈베리파이] 커널 빌드 & 컴파일 환경 설정
라즈베리파이 리눅스 커널 컴파일 명령어 출처https://wikidocs.net/3243https://www.raspberrypi.org/documentation/linux/kernel/building.md 아래와 같이 폴더를 하나 생성합니다./home001/austin.kim/src/raspberry_kernel 소스 코드는 아래 명령어로 다운로드 받습니다.git clone --depth=1 소스 코드를 다 받으면 linux란 폴더가 생깁니다.austin.kim@LGEARND7B16:~/src/raspberry_kernel$ ls -ltotal 4drwxr-xr-x 25 austin.kim home001 4096 Feb 12 08:35 linux 크로스컴파일 환경 설정아래 명령어로 라즈베리 파이 크
![[Spoiler] 점프 신작 '공주님 고문 시간입니다' 원작자에 '우공못' 작가 그림. '시간정지용사' 또다른 플레이어? '다음에 오는 만화 대상' 운영 잡지 폐간](https://img.zoomtrend.com/2026/06/07/1780881297-ECA090ED948426-28EC95A0EB8B88EBA980EC8B9CEAB7B8EB8490.jpeg)

