라즈베리
Posts
16 posts
Gameshell, 오픈소스 휴대용 게임 에뮬레이터
고전 콘솔 에뮬레이터들은 이미 나올 만큼 나와서 크게 새로울 것은 없지만 라즈베리 파이 같은 싱글보드 컴퓨터를 이용해 휴대용 게임기를 만드는 킷트도 새롭게 출시되는 등 일부 사람들에겐 아직도 더 깊이 파고 들 여지가 남아 있는 것 같습니다. 사진 : 라즈베리파이를 휴대용 게임기로 활용하기 위한 휴대용 게임기 케이스 킷 싱글보드 컴퓨터를 개발용이 아닌 일상에 활용하는 가장 흔한 예가 Plex를 이용한 미디어센터나 에뮬게임, 간단한 웹서버, NAS 정도인데 제 경우는 아톰 베어본으로 웹서버를 하나 돌리고 있고, 미디어센터 용도로는 라떼판다(Lattepanda) 라는 아톰 프로세서를 내장한 싱글보드 컴퓨터를 사용하고 있고, 휴대용 에뮬 게임기 용도는 안드로이드 폰과 PSP를 이용하고 있었습니다...만 라즈베리
[라즈베리파이] 커널 살펴보기 - 섹션 정보
아래 명령어로 라즈베리파이 소스 다운로드를 하고,git clone --depth=1 크로스 컴파일러 툴을 설치한 다음에,git clone 커널 빌드를 하면 vmlinux을 추출할 수 있습니다.make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfigmake ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs -j12 아래 명령어로 라즈베리파이 섹션 정보를 파악할 수 있는데요. 조금 더 짚어 보겠습니다../objdump -x vmlinux | more 섹션이란 용어에 대해서 설명을 하겠습니다. 섹션은 임베디드 소스 빌드 시 쓰이는 개념인데, 비슷한 속성의 코드들을 묶어서 처리하
[라즈베리파이]인터럽트(4) - 인터럽트 디스크립터란
인터럽트 디스크립터는 디바이스 드라이버가 등록한 인터럽트 속성을 표현합니다. 각 디바이스 드라이버에서 설정한 인터럽트 마다 아래 자료 구조를 커널이 생성합니다. 자료 구조는 아래와 같습니다.struct irq_desc { struct irq_common_data irq_common_data; struct irq_data irq_data; unsigned int __percpu *kstat_irqs; irq_flow_handler_t handle_irq;#ifdef CONFIG_IRQ_PREFLOW_FASTEOI irq_preflow_handler_t preflow_handler;#endif struct irqaction *action; /* IRQ action list */ unsigned int sta
[라즈베리파이] 인터럽트 백터 어셈블리 코드 및 동작 분석
인터럽트가 발생하면 __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



