-
[Raspberry PI] boot.s 작성 및 GPIO공부/Embedded 2025. 5. 12. 03:17
VideoCore와 ARM Processor
일단 라즈베리 파이의 경우 Broadcom의 VideoCore 프로세서가 존재한다.
부팅 과정 또한 ARM 프로세서가 아닌, VideoCore가 먼저 시작하게 된다.(아무튼 그렇다고 함)
Address map
라즈베리 파이는 32-bit 시스템 호환을 위해 특별한 주소 방법을 채택하고 있다.
- Full 35-bit address bus
- 32-bit Legacy
자세한 내용은 아래 bcm2711문서 1.2.1 그림과 그 아래 내용을 참고하면 된다.
https://datasheets.raspberrypi.com/bcm2711/bcm2711-peripherals.pdf
예시로, GPIO의 시작 주소의 경우 아래와 같다.
Legacy Master view of Address Map: 0x7E200000
ARM view of the Address Map in "Low Peripheral mode": 0xFE200000
boot.s 어셈블리 작성
라즈베리 파이 4B 모델의 경우 ARM Cortex-A72를 사용한다.
ARM 프로세서에서 동작하는 어셈블리 코드를 작성하고 빌드하기 위해 FASMARM를 사용한다.
- FASMARM(ARM cross-assembler download)
https://arm.flatassembler.net/
- ARM 레지스터와 명령어 셋의 경우 공식 사이트에서 하나씩 잘 찾아작성해주면 된다.
https://developer.arm.com/documentation/ddi0601/latest/
boot.s
// 코드
kernel8.img 실행
라즈베리 파이의 경우, VideoCore에서 flash memory를 먼저 읽고, 그 중 ....
....
작성 중
필수 구성 파일들
https://github.com/raspberrypi/firmware
결과
'공부 > Embedded' 카테고리의 다른 글
[Raspberry PI] 기본 세팅 / 시리얼 통신 (0) 2025.04.27 [Raspberry PI] Datasheet & Develop Environment (0) 2025.04.25 CAN 1.0 / CAN 2.0 / CAN FD (0) 2025.04.20 [PHY Chip] VSC8541 (0) 2025.03.30 MDIO Interface (0) 2025.03.21