프로젝트의 목표 : 라즈베리파이에서 동작하는 Firmware 개발
Target : 라즈베리파이 3
개발환경 : Linux QEMU(애뮬레이터)
개발환경의 구축은 Linux OS에서 QEMU 애뮬레이터를 통해서 진행하며 최종목표는 라즈베리파이 3에서 동작하는 Firmware의 자체 개발이다.
1. Compiler & QEMU 설치
리눅스 환경에서 리눅스가 아닌 ARM 개발을 진행하기 위해서는 먼저 크로스 컴파일러의설치가 필요하다 (서로 다른 OS 개발을 위한 컴파일러)
https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads |
위 주소를 통해서 ARM 개발을 위한 gcc컴파일러의 설치가 가능하다 (리눅스의 경우 apt-get install로 설치 가능)
마찬가지로 QEMU를 apt-get을 통해서 설치합니다. 이 때 QEMU는 arm용으로 설치합니다.
sudo apt-get install qemu-system |
기본적으로 embedded chipset은 arm을 주로 사용하기 때문에 arm firmware를 목표로 진행하겠습니다.
2. AP
위에서 언급한 'embedded chipset에서 arm을 주로 사용한다' 의 이해를 돕기위해 배경 정리를 간단히 진행하겠습니다.
기본적으로 AP란 대표적인 임베디드 시스템인 Mobile 의 CPU, GPU, Memory등의 역할을 담당하는 chipset입니다.
보통 PC의 경우 CPU, GPU, Memory가 모두 분리되어 메인보드에 결합되고있으나 Mobile에서는 이러한 chip들을 하나의 chip으로 패키징해서 사용합니다. 해당 chipset을 AP라고부르며 이렇게 여러 개의 chpset을 하나로 만드는 것을 SOC(System on chip)이라고 합니다.
결과적으로 이러한 SOC가 S.LSI의 exysnos, Qualcomm의 sm-xxxx 시리즈 chipset이 됩니다.
그리고 이러한 AP 내에 패키징된 CPU가 바로 arm 계열입니다. ARM은 Intel 과 같은 CPU 설계 및 개발을 진행하는 곳으로 저전력 RISC구조에 능해 데스크탑보다 전력 소모에 민감한 Mobile, Embedded에서는 ARM CPU를 주로 사용합니다.
물론 ARM이 아닌 AVR역시 embedded에서 주로 사용되고 있습니다. 예를들어 Atmega, Arduino 시리즈에서 주로 사용되는 MCU(MCU역시 SOC와 비슷한 의미로 cpu, 입출력장치 등을 하나의 chipset으로 패키징한 chipset이다) chipset은 AVR입니다.
하지만 Project Target Model인 라즈베리파이3역시 BCM2837인 ARM chipset을 사용하기 때문에 ARM chipset으로 FIrmware Project를 진행하겠습니다.
- ref
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=sim940228&logNo=220660267682
임베디드 OS 개발 프로젝트
'OS > Firmware Project' 카테고리의 다른 글
[OS] Firmware Project (5) - 입출력 (0) | 2021.06.28 |
---|---|
Firmware Project (4) - Memory Set (0) | 2021.06.20 |
[OS] Firmware Project (3) - ELF & SYS_ID (0) | 2021.06.13 |
[OS] Firmware Project (2) - ARM Exception & Mode (0) | 2021.06.13 |
[OS] Firmware Project를 시작하기 전에... (0) | 2021.06.11 |