RASPBERRY

포스트: 14
Tags

Posts

14 posts
Gameshell, 오픈소스 휴대용 게임기 에뮬레이터 (조립)

Gameshell, 오픈소스 휴대용 게임기 에뮬레이터 (조립)

잉여 Says|2018년 7월 20일

Gameshell 오픈소스 휴대용 게임기 에뮬레이터 에 관한 이전 글에 이어서 작성합니다. Gameshell을 오늘(2018.07.20) 수령해 조립했습니다.간단하게 조립하면서 찍은 사진들을 올려 보겠습니다. 주요 부품 패키지입니다. 메인보드와 배터리, 스피커, 디스플레이, 컨트롤러 모듈, OS가 설치되어 있는 마이크로SD 등이 들어 있습니다. 각각의 모듈 케이스입니다. 프라모델처럼 직접 뜯어서 조립해야 합니다.메인보드, Allwinner AP가 눈에 띕니다. 메모리는 512GB입니다.컨트롤러 모듈각각의 모듈을 조립해 모듈들 사이에 케이블까지 연결하고 케이스를 덮으면 완성인데 여기까지 20분 정도 걸렸습니다.부팅은 빠른 편우선 wifi부터 잡아 줍니다.tiny cloud라는 앱을 실행하면 ssh와 sm

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

Guillermo Austin Kim|2018년 2월 20일

아래 명령어로 라즈베리파이 소스 다운로드를 하고,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) - 인터럽트 디스크립터란

Guillermo Austin Kim|2018년 2월 13일

인터럽트 디스크립터는 디바이스 드라이버가 등록한 인터럽트 속성을 표현합니다. 각 디바이스 드라이버에서 설정한 인터럽트 마다 아래 자료 구조를 커널이 생성합니다. 자료 구조는 아래와 같습니다.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

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

Guillermo Austin Kim|2018년 2월 13일

인터럽트가 발생하면 __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