QEMU로 임베디드 Linux 시스템 에뮬레이션

QEMU로 임베디드 Linux 시스템 에뮬레이션

 

1. 소개

임베디드 소프트웨어 개발은 ​​개발 보드, 외부 모듈 장치 등과 같은 임베디드 하드웨어 장치에 의존하지만 디버깅 작업이 주변 장치와 관련이 없는 경우 하드웨어 구매 없이 QEMU를 사용하여 커널 디버깅만 시뮬레이션할 수 있습니다.

Linux 및 Windows 호스트와 에뮬레이트된 PowerPC, ARM, MIPS 및 SPARC 대상에서 사용할 수 있습니다. QEMU는 호스트와 대상 프로세서 사이에 최소 변환 계층을 제공하는 접근 방식을 취합니다. 호스트 프로세서는 에뮬레이터를 실행하는 프로세서이고 대상 프로세서는 에뮬레이트되는 프로세서입니다.

다음은 QEMU 개발 환경을 설정하는 과정에 대한 자세한 소개입니다.

 

2. 환경

2.1 사용 환경

* 우분투-18.04.1

또는:

* PC: Windows10

* 가상 머신: VirtualBox-5.18

* 가상 OS: Ubuntu-18.04.1

* 시뮬레이션 개발 보드: vexpres

2.2 환경 설정 시 사용하는 도구

* 큐뮤-4.2.0

* linux-4.14.172(리눅스 커널)

* 유-부트-2017.05

* 바쁜 상자-1.31.1

* 팔-리눅스-gnueabi-gcc

모든 관련 파일을 /home/joe/qemu에 넣습니다.

3. 크로스 컴파일 도구 설치

# sudo apt install gcc-arm-linux-gnueabi

 

설치가 성공했는지 확인

$ arm-linux-gnueabi-gcc -v

내장 사양을 사용합니다.

COLLECT_GCC=arm-linux-gnueabi-gcc

COLLECT_LTO_WRAPPER=/usr/lib/gcc-cross/arm-linux-gnueabi/7/lto-wrapper

대상: arm-linux-gnueabi

구성: ../src/configure -v –with-pkgversion='Ubuntu/Linaro 7.5.0-3ubuntu1~18.04'–with-bugurl=file:///usr

스레드 모델: posix

gcc 버전 7.5.0(Ubuntu/Linaro 7.5.0-3ubuntu1~18.04)

 

4. Linux 커널 구성 및 컴파일

4.1 리눅스 커널 다운로드

www.kernel.org에서 필요한 커널 버전을 다운로드합니다.

여기에서 비교적 최신의 장기 지원 커널 버전 linux-4.4.157을 다운로드합니다.

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.157.tar.xz  /qemu 디렉토리로

4.2 리눅스 커널 압축 풀기

# 타르 xvJf 리눅스-4.4.157.tar.xz

4.3 리눅스 커널 컴파일

// 커널 소스 파일 디렉토리 입력

# cd 리눅스-4.4.157

CROSS_COMPILE=arm-linux-gnueabi-ARCH=arm vexpress_defconfig 만들기

CROSS_COMPILE=arm-linux-gnueabi-ARCH=arm menuconfig 만들기

menuconfig를 실행할 때 ncurses 패키지가 누락된 것으로 표시되면 다음 명령을 실행하여 설치하십시오)

$ sudo apt-get 설치 libncurses5-dev

메뉴 구성을 입력하고 다음 설정을 지정합니다.

크로스 툴체인으로 컴파일

컴파일 성공 후 디렉토리 아래에 커널 이미지 파일 생성

arch/arm/boot, zImage 및 dtb를 별도의 폴더에 복사하여 편리하게 사용할 수 있습니다.

 

5. QEMU 도구 설치

5.1 QEMU 설치

* wget https://download.qemu.org/qemu-4.2.0.tar.xz

* tar xvJf qemu-4.2.0.tar.xz

* CD qemu-4.2.0

5.2 QEMU를 구성하기 전에 종속 패키지 설치

# 적절한 설치 zlib1g-dev
# apt 설치 libglib2.0-0 libglib2.0-dev
# apt 설치 libsdl1.2-dev
# apt 설치 libpixman-1-dev libfdt-dev

컴파일 후 파일이 지저분해지는 것을 방지하기 위해 builder 디렉토리를 컴파일의 중간 대상 경로로 생성합니다.

QEMU를 구성, 컴파일 및 설치합니다.

5.3 암 아키텍처 아래의 모든 보드를 지원하도록 QEMU 구성

# ../configure –target-list=arm-softmmu –audio-drv-list=

다음 프롬프트가 나타날 때 pixman이 누락된 경우,

sudo apt-get install libpixman-1-dev를 사용하여 설치합니다.

5.4 QEMU 버전 보기

5.5 QEMU에서 지원하는 개발 보드 보기

5.6 QEMU 실행

# qemu-system-arm -M vexpress-a9 -m 512M -kernel ./zImage -dtb ./vexpress-v2p-ca9.dtb -nographic -append "console=ttyAMA0"

또는:

$pwd

/홈/조/퀘무

# qemu-system-arm -M vexpress-a9 -m 512M -kernel linux-.4.157/arch/arm/boot/zImage -dtb linux-4.4.157/arch/arm/boot/dts/vexpress-v2p-ca9. dtb -nographic -추가 "콘솔=ttyAMA0"

더 나은 테스트 및 qemu 시작을 위해 시작 스크립트 start.sh를 만들고 스크립트에 chmod +x start.sh를 실행할 수 있는 권한을 부여할 수 있습니다.

 

#! / bin / bash

 

qemu-시스템-암 \

-M vexpress-a9 \

-m 512M \

-커널 /home/joe/jemu/linux-4.4.157/arch/arm/boot/zImage \

-dtb /home/joe/jemu/linux-4.4.157/arch/arm/boot/dts/vexpress-v2p-ca9.dtb \

-노그래픽 \

- "콘솔=ttyAMA0" 추가

 

6. 루트 파일 시스템 만들기

busybox를 사용하여 간단한 루트 파일 시스템을 만드십시오.

6.1 busybox 도구 다운로드

https://busybox.net/downloads/에서 busybox를 다운로드하십시오.

# wget https://busybox.net/downloads/busybox-1.31.1.tar.bz2

# tar xjvf busybox-1.31.1.tar.bz2

# CD 바쁜 상자-1.31.1

# defconfig를 만든다

# CROSS_COMPILE=arm-linux-gnueabi-를 만듭니다.

# 설치 CROSS_COMPILE=arm-linux-gnueabi-

설치가 성공했음을 나타내는 다음 정보가 프롬프트됩니다.

설치가 완료된 후 생성된 대상 파일은 기본적으로 ./_install 디렉토리로 설정됩니다.

 

6.2 루트 파일 시스템 생성

6.2.1 busybox 컴파일 및 설치

# mkdir 루트fs

# sudo cp -r _install/* rootfs/

6.2.2 glibc 라이브러리 추가, 루트 파일 시스템에 로더 및 동적 라이브러리 추가

# sudo cp -r _install/* rootfs/

# sudo cp -p /usr/arm-linux-gnueabi/lib/* rootfs/lib/

6.2.3 4개의 tty 터미널 장치 생성(c는 문자 장치, 4는 주 장치 번호, 1~4는 각각 보조 장치 번호)

 

6.3 SD 카드 파일 시스템 이미지 만들기

6.3.1 빈 SD 카드 이미지 생성

# dd if=/dev/zero of=rootfs.ext3 bs=1M 카운트=32

6.3.2 SD 카드를 exts 파일 시스템으로 포맷

# mkfs.ext3 루트fs.ext3

6.3.3 SD 카드에 rootfs 굽기

# sudo 마운트 -t ext3 rootfs.ext3 /mnt -o 루프

# sudo cp -rf rootfs/* /mnt/

# sudo umount /mnt

 

7. 확인

7.1 큐뮤 시작

다음 명령을 실행하여 테스트하고 컴파일된 커널이 성공적으로 실행할 수 있는지 확인합니다.

# sudo qemu-system-arm -M vexpress-a9 -m 512M -kernel ~/qemu/zImage –dtb ~/qemu/vexpress-v2p-ca9.dtb -nographic -append “console=ttyAMA0”

또는 스크립트 사용:

 

위의 테스트에서 커널은 패닉을 보고하여 루트 파일 시스템이 부족함을 나타냅니다.

위의 문제는 x86 환경에서 생성된 비지박스 툴 때문입니다.

우리는 busybox를 설치할 때 make install을 사용했으므로 다음을 사용해야 합니다.

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-install

 

컴파일 도구는 arm 플랫폼에서 사용하는 busybox 도구를 생성합니다.

# 파일 rootfs/bin/busybox

rootfs/bin/busybox: ELF 32비트 LSB 실행, ARM, EABI5 버전 1(SYSV), 동적으로 링크됨, 인터프리터 /lib/ld-, GNU/Linux 3.2.0용, BuildID[sha1]=cbcd33b8d6c946cb19408a5e8e714de554, strippedf87

 

7.2 다시 확인

이제 Qemu는 Linux 커널을 시작하고 파일 시스템을 성공적으로 마운트했으며 직렬 터미널을 통해 간단한 기능으로 시스템과 상호 작용할 수 있습니다. 인쇄 과정에서 /etc/init.d/rcS를 실행할 수 없는 문제는 /etc/init.d/rcS 파일만 추가하면 됩니다. 파일의 내용은 프롬프트 문일 수 있습니다.

 

7.3 QEMU 종료

qemu를 종료하는 두 가지 방법

* 다른 터미널 입력에서: 모든 qemu-system-arm 종료

* Qemu 입력: Ctrl+ A; NS

QEMU: 종료됨

 

8. u-boot를 통해 Linux 커널 시작

임베디드 시스템에는 일반적으로 u-boot, kernel, rootfs 및 appfs가 포함됩니다. ARM 개발 보드에서 이러한 부품의 위치 관계는 아래 그림과 같습니다.

 

부트로더 부트 매개변수 핵심 루트프 앱프

 

Rootfs는 보드 또는 PC에서 실행할 수 있습니다.

 

8.1 U 부트 준비

8.1.1 u-boot 다운로드

http://ftp.denx.de/pub/u-boot/, 우리는 u-boot-2021.01.tar.bz2를 사용합니다.

# tar -jxvf u-boot-2018.09.tar.bz2

8.1.2 컴파일 u-boot

# vim 메이크파일

CROSS_COMPILE = arm-linux-gnueabi-

# vim config.mk

아치 = 팔

# vexpress_ca9x4_defconfig를 생성, 오류

필요 : sudo apt install 들소

sudo apt install 플렉스

then: # -j4 오류를 만듭니다.

필요: export CROSS_COMPILE=arm-linux-gnueabi-

내보내기 ARCH=암

다시: # vexpress_ca9x4_defconfig를 만듭니다.

# make -j4

 

 8.1.3 테스트, u-boot 시작

$ sudo qemu-system-arm -M vexpress-a9 -m 512M -kernel u-boot-2021.01/u-boot –nographic

 

8.2 커널 구성 컴파일

u-boot를 사용하여 커널 이미지를 부팅합니다.

커널을 uImage 형식으로 컴파일해야 합니다.

메모리에서 uImage의 로드 주소를 지정해야 합니다.

커널을 컴파일할 때 지정: make LOADADDR=? u이미지 -j4

 

# cd /home/joe/qemu/linux-4.4.157

# LOADADDR=0x60003000 uImage -j4로 만듭니다.

 

u-boot 컴파일이 완료되면 도구 폴더 아래에 mkimage 파일이 생성되며 이 파일을 크로스 컴파일러 디렉터리 아래의 bin 폴더에 복사합니다.

$ cd qemu/linux-4.4.157

오류:

$ sudo apt install u-boot-tools

uImage 가져오기

9. QEMU 네트워크 기능 설정

u-boot 시 Qemu 가상 머신이 시작되면 uImage를 메모리에 로드해야 하며 uImage는 TFTP 서버를 통해 메모리의 지정된 주소로 다운로드할 수 있습니다.

9.1 호스트 커널이 tun/tap 모듈을 지원하는지 확인

// 브리지된 네트워크가 의존하는 두 가지 도구를 설치합니다.

# sudo apt install uml 유틸리티 브리지 유틸리티

tun 장치 파일 생성: /dev/net/tun(일반적으로 자동 생성됨)

/etc/network/interfaces 수정(네트워크 구성, 적용하려면 다시 시작)

# sudo vim /etc/network/interfaces

auto loiface lo inet loopbackauto enp0s3 // 가상 네트워크 이름 cardauto br0iface br0 inet dhcpbridge_ports enp0s3

 

절대 재부팅하지 마십시오

# 재부팅

그런 다음 Qemu의 네트워크 환경을 확인하십시오.

가상 네트워크 포트 br0은 Qemu 가상 머신과 Linux 호스트 간의 통신을 위한 네트워크 포트입니다.

 

10. TFTP 서버 설치

Qemu 시뮬레이션 개발 보드용 uImage를 시작할 때 uImage를 메모리에 다운로드하기 위한 TFTP 서버 생성

 

10.1 tftp 도구 설치

 

$ apt-get 설치 tftp-hpa tftpd-hpa xinetd

 

10.2 구성 파일 수정 및 TFTP 서버 디렉토리 설정

# sudo vim /etc/default/tftpd-hpa

......

TFTP_DIRECTORY=”/홈/조/tftpboot”

......

10.3 Linux 호스트에 tftp 디렉토리 생성

# mkdir /home/joe/tftpboot

# chmod 777 /홈/조/tftpboot

 

10.4 tftp 서비스 다시 시작

# sudo /etc/init.d/tftpd-hpa 재시작

 

10.5 u-boot에서 커널 시작 매개변수 설정

uImage 및 cexpress-v2p-ca9.dtb를 tftpboot에 복사

Qemu를 시작하여 확인

 

$ sudo qemu-system-arm -M vexpress-a9 -m 512M -kernel u-boot-2021.01/u-boot -nographic -net nic,vlan=0 -net 탭, vlan=0,ifname=tap0 -sd rootfs. 내선3

 

이제 rootfs 디렉토리는 미러 파일로 만들 수 있는 간단한 루트 파일 시스템이며 미러 파일을 개발 보드에 굽거나 Linux 커널을 Qemu에서 u-boot로 시작하고 마운트할 수 있습니다. 미러 파일. NFS 네트워크 파일 시스템을 통해 부팅하도록 설정할 수도 있습니다.

 

11. NFS 파일 시스템 마운트

11.1 NFS 서비스 설치 및 구성

11.1.1 설치

$ sudo apt install nfs-커널-서버

 

11.1.2 구성

$ sudo mkdir /home/joe/qemu/rootfs

$ sudo chown 아무도:nogroup /home/joe/qemu/rootfs

$ sudo chmod 777 /home/joe/qemu/rootfs

$ sudo nano /etc/exports

추가: /home/joe/qemu/rootfs *(rw,sync,no_root_squash)

 

nfs 서버를 다시 시작하십시오.

$ sudo /etc/init.d/nfs-kernel-server 재시작

또는: $systemctl nfs-kernel-server 재시작

 

NFS 공유 디렉토리 생성 여부 확인

$ sudo showmount -e

NFS 네트워크 파일 시스템을 사용할 때 Linux 호스트는 시스템 방화벽을 닫아야 합니다. 그렇지 않으면 시스템이 실행될 때 이상이 발생합니다.

 

결론

이 블로그의 도움으로 QEMU에 대해 더 많이 알게 되기를 바랍니다. 위에서 설명한 모든 기술은 우리 프로그램에 대한 다양한 제출에 사용되었습니다. QEMU로 에뮬레이트하는 고정된 단일 방법은 없습니다. 다양한 기술을 탐색하고 자신에게 적합한 방법을 확인하십시오. 지식에 익숙해지면 예상치 못한 방식으로 도움이 될 수 있다는 사실에 놀랄 것입니다.

오리엔트 디스플레이 임베디드 프로젝트 소개

오리엔트 디스플레이 임베디드 프로젝트 소개

오리엔트 디스플레이는 세계 최고의 디스플레이 중 하나입니다. LCD 디스플레이 제조업체 1996년에 25년 이상의 R&D 및 생산 경험이 있는 경영진에 의해 설립되었습니다. 오리엔트디스플레이는 디스플레이 외에도 ARM 아키텍처를 비롯한 임베디드 기술에 집중하며 임베디드 제품에 대한 풍부한 경험을 축적했다.

이제 Orient Display 기술 서비스에는 하드웨어, 소프트웨어 및 컨설팅이 포함됩니다.

 

당사의 하드웨어 팀 디자인 아이디어와 요구 사항에 따라 최단 시간에 프로토타입을 만드십시오. 우리는 짧은 개발 주기에서 높은 신뢰성에 대한 요구 사항을 충족하기 위해 비용 효율적이거나 복잡한 고성능 보드 설계를 전문으로 합니다.

– 개략도 설계

– PCB 레이아웃

– 산업 제품 맞춤화

 

당사의 소프트웨어 팀 Linux 기반 전문 ARM® 디자인PowerPC 및 x86 프로세서 등. 임베디드 시스템의 Linux, Android 및 WinCE를 위한 완벽한 솔루션 제공업체로서 당사는 귀사 제품의 종단 간 시스템 관련 문제를 해결할 수 있습니다.

– 시스템 마이그레이션, 최적화 및 조정

– 드라이브 개발

– 커널 조정

– LINUX KERNEL을 ARM, PPC 또는 x86 보드로 이식

– APP 개발(어플리케이션, Linux QT, Linux C/++)

 

당사의 FAE  또한 귀하의 제품 또는 반제품에 대한 전체 범위의 기술을 제공합니다.

– 우리는 우리 제품의 소프트웨어 및 하드웨어 리소스에 대한 컨설팅을 제공합니다.

– 우리는 우리 제품의 소프트웨어 및 하드웨어 설명서를 사용하는 동안 발생하는 문제를 해결합니다.

– OEM 및 ODM 판매 후 기술 지원

– 데이터 유지 및 업데이트

– 오리엔트 디스플레이 제품은 당사의 지원을 받습니다. 최저 가격 보장.

 

개발 순서

 

1. 시스템 요구 사항 분석

* 디자인 작업, 목표, 사양

– 이것은 고객이 제공한 것입니다.

* 기능 및 비기능 요구 사항

– 시스템 성능, 비용, 전력 소비, 부피, 무게 및 기타 요소 포함

 

2. 건축설계

좋은 아키텍처는 디자인 성공의 열쇠입니다. 이 단계에서는 종종 다음 작업을 수행해야 합니다.

  • 메인 칩 선택:

— ARM Cortex A, R 또는 M, PowerPc 또는 ColdFire

  • RTOS를 결정합니다.

— 리눅스, uClinux, Vxworks, freeRTOS, WinCE

  • 디스플레이 선택:

- TFT 패널, 햇빛 가독성 TFT, LCD 유리 패널, 그래픽 LCD,  OLED 디스플레이, 터치 패널, 임베디드 LCD 디스플레이 or 맞춤형 디스플레이 by 오리엔트 디스플레이

  • 프로그래밍 언어:

— c/c++, 파이썬, 자바

  • 개발 도구:

u-boot, busybox, QT, Ubuntu, stm32CubeIde, Visual Studio, Android 스튜디오, keil uVision, RT-Tread 스튜디오

 

3. 하드웨어 및 소프트웨어 공동 설계

제품 개발 주기를 단축하려면:

하드웨어:  보통 오리엔트 디스플레이 등의 평가판에서 프로젝트를 시작합니다 AIY-A002M, AIY-A003MAIY-A005M. 나중에 프로젝트에 맞는 맞춤형 보드가 필요하지 않은 부품은 폐기합니다.

소프트웨어 개발 순서:

  • 우리는 일반적으로 부트로더로 u-boot를 선택합니다. 1) cpu를 알려진 상태로 초기화 2) 메모리 초기화 3) 인터럽트 초기화 4) 클럭 초기화 5) 커널을 실행 중인 주소로 로드합니다.
  • 커널 구성:

1) 커널 시스템 구성: *메모리 관리, *파일 시스템, *장치 드라이버, *네트워크 스택, *I/O 시스템

2) 쓰기 I/O 장치 드라이버 *char 장치 드라이버, *블록 장치 드라이버, *net 장치 드라이버

  • 애플리케이션 선택:

*사용자 라이브러리 선택 *사용자 애플리케이션 빌드 *초기화 프로세스 구성 *루트 FS 빌드

 

4. 에스시스템 통합

시스템의 소프트웨어, 하드웨어 및 실행 장치를 함께 통합하고 장치 설계 프로세스에서 오류를 디버그, 찾아 개선합니다.

 

5. 시스템 테스트

설계된 시스템을 테스트하여 사양에 제공된 기능 요구 사항을 충족하는지 확인합니다. 임베디드 시스템 개발 모델의 가장 큰 특징은 소프트웨어와 하드웨어의 종합적인 개발입니다.

 

결론적으로

Orient Display는 개념에서 생산에 이르기까지 임베디드 디스플레이 모듈을 제작할 수 있는 경험과 능력을 갖춘 재능 있는 전문가들로 구성된 놀라운 팀을 보유하고 있습니다.

질문이 있는 경우 다음 주소로 엔지니어에게 문의하십시오. tech@orientdisplay.com.

ARM 프로세서를 선택하는 방법

ARM 프로세서를 선택하는 방법

개요

가장 넓은 범위의 마이크로프로세서 거의 모든 애플리케이션 시장을 위한 코어. 탐구하다 ARM. 거의 모든 애플리케이션 시장, 프로세서에 대한 성능, 전력 및 비용 요구 사항은 매우 중요합니다. 시스템 성능은 하드웨어에 크게 의존합니다. 이 기사는 ARM 프로세서에 대한 연구를 안내하고 의사 결정에 큰 도움이 될 것입니다.

 

ARM에 대한 간략한 소개

그림 1. ARM 프로세서 로드맵

 

2003년 이전에는 ARM7(ARMv4 Architecture), ARM9(ARMv5 Architecture), ARM11(ARMv6 Architecture)을 포함하는 고전적인 ARM 프로세서가 있었습니다. ARM7에는 MMU(메모리 관리 장치)가 없으며 Linux 및 WinCE와 같은 다중 사용자 다중 프로세스 시스템을 실행할 수 없습니다. MMU가 필요하지 않은 ucOS 및 ucLinux와 같은 시스템만 실행할 수 있습니다. ARM9 및 ARM11은 Linux를 실행할 수 있는 MMU가 있는 임베디드 CPU입니다.

2003년 이후 ARMv7 아키텍처에 관해서는 Cortex의 이름을 따서 명명되었으며 세 가지 시리즈로 나뉩니다. Cortex-A, Cortex-R 및 Cortex-M.

  • 피질 -A — 성능 집약적 시스템을 위한 애플리케이션 프로세서 코어
  • 피질-R – 실시간 애플리케이션을 위한 고성능 코어
  • 피질-M – 광범위한 임베디드 애플리케이션을 위한 마이크로컨트롤러 코어

간단히 말해서, 피질 -A 시리즈는 높은 컴퓨팅 요구 사항, 풍부한 운영 체제를 실행하고 대화형 미디어 및 그래픽 경험을 제공하는 응용 프로그램에 적합합니다. 피질-R 신뢰성, 고가용성, 내결함성, 유지보수성 및 실시간 응답이 필요한 경우에 적합합니다. 피질-M 이 시리즈는 비용 및 전력에 민감한 MCU 및 최종 애플리케이션을 대상으로 합니다.

 

Cortex-A VS Cortex-R VS Cortex-M

피질 -A

Cortex-A 프로세서 범주는 Linux 및 Android 장치 전용입니다. 스마트워치와 태블릿에서 시작하여 네트워킹 장비에 이르기까지 모든 장치는 Cortex-A 프로세서에서 지원할 수 있습니다.

  • Cortex-A 프로세서(A5, A7, A8, A9, A12, A15 및 A17)는 ARMv7-A 아키텍처를 기반으로 합니다.
  • A 프로세서의 공통 기능 세트에는 미디어 처리 엔진(NEON), 보안 목적을 위한 도구(Trustzone) 및 지원되는 다양한 명령 세트(ARM, Thumb, DSP 등)가 포함됩니다.
  • Cortex-A 프로세서의 주요 기능은 최고의 성능과 뛰어난 전력 효율성을 밀접하게 결합하여 사용자에게 최상의 서비스를 제공한다는 것입니다.

Cortex-A 프로세서의 주요 특징:

코어 텍스 A5: Cortex A5는 Cortex A 시리즈 중 가장 작고 전력이 적은 제품이지만 여전히 멀티코어 성능을 발휘할 수 있으며 A9 및 A15 프로세서와 호환됩니다.

코어 텍스 A7: A7의 소비전력은 A5와 거의 비슷하지만 A7이 제공하는 성능은 A20보다 5% 더 높을 뿐만 아니라 Cortex-A15 및 Cortex-A17과 완벽한 아키텍처 호환성을 제공합니다. Cortex-A7은 비용에 민감한 스마트폰 및 태블릿 구현에 이상적인 선택입니다.

콘트렉스-A15: Cortex-A15는 이 시리즈의 최고 성능 제품으로 A9보다 두 배의 성능을 제공합니다. A15는 고급 장치, 저전력 서버 및 무선 인프라에서 응용 프로그램을 찾습니다. 이것은 데이터 관리 및 가상 환경 솔루션을 위한 최초의 프로세서 지원입니다.

콘트렉스-A17: Cortex-A17은 A60보다 9% 더 높은 성능을 보여줍니다. 주요 목표는 프리미엄급 장치의 요구를 충족시키는 것입니다.

콘트렉스-A50: 최신 시리즈인 Contrex-A50은 ARMv8 아키텍처를 기반으로 하며 Arch64-bit 에너지 효율적인 시스템을 지원합니다. 64비트로 전환하는 분명한 이유는 Cortex-A4 및 Cortex-A15에서 이미 달성된 7GB 이상의 물리적 메모리 지원입니다.

 

피질-R

Cortex-R 프로세서는 하드 디스크 컨트롤러, 네트워킹 장비 미디어 플레이어 및 기타 유사한 장치와 같은 고성능 실시간 애플리케이션을 대상으로 하며, 또한 에어백, 제동 시스템 및 엔진 관리와 같은 자동차 산업을 크게 지원합니다.

피질-R4:  Cortex-R4는 자동차 애플리케이션에 매우 적합합니다. 최대 600MHz까지 클럭할 수 있으며 이중 문제, 프리페치 및 저지연 인터럽트 시스템이 있는 8단계 파이프라인이 있어 안전이 중요한 시스템에 이상적입니다.

피질-R5: Cortex-R5는 R4에서 제공하는 기능을 확장하고 향상된 효율성, 안정성을 추가하고 오류 관리를 강화합니다. 듀얼 코어 구현을 통해 실시간 응답으로 매우 강력하고 유연한 시스템을 구축할 수 있습니다.

피질-R7: Cortex-R7은 성능을 크게 확장합니다. 11단계 파이프라인이 특징이며 비순차적 실행과 높은 수준의 분기 예측을 모두 가능하게 합니다. 잠금 단계, 대칭 및 비대칭 다중 처리를 위해 도구를 구현할 수 있습니다. 일반 인터럽트 컨트롤러는 언급해야 하는 또 다른 중요한 기능입니다.

 

피질-M

MCU 시장을 대상으로 특별히 설계된 Cortex-M. Cortex-M 시리즈는 ARMv7-M 아키텍처(Cortex-M3 및 Cortex-M4에 사용됨)를 기반으로 하고 더 작은 Cortex-M0+는 ARMv6-M 아키텍처를 기반으로 합니다. Cortex-M은 32이 8051비트용인 것과 같이 8비트용이 되었다고 해도 과언이 아닙니다. 많은 공급업체에서 제공하는 업계 표준 코어입니다. 예를 들어 Cortex-M 시리즈는 FPGA에서 소프트 코어로 구현될 수 있지만 메모리, 클록 및 주변 장치가 통합된 MCU로 구현되는 것이 훨씬 더 일반적입니다. 일부는 에너지 효율성에 최적화되어 있고 일부는 고성능에 최적화되어 있으며 일부는 스마트 미터링과 같은 특정 시장 부문에 맞춰져 있습니다.

특히 비용에 민감하거나 8비트에서 32비트로 마이그레이션하는 애플리케이션의 경우 Cortex-M 시리즈 중 가장 작은 제품이 최선의 선택일 수 있습니다.

피질-M0: Cortex-M0+는 Thumb-2 명령어 세트를 사용하며 2단계 파이프라인이 있습니다. 중요한 기능은 단일 사이클 GPIO용 버스와 마이크로 트레이스 버퍼입니다.

피질-M3&M4:  Cortex-M3와 Cortex-M4는 매우 유사한 코어입니다. 각각은 3단계 파이프라인, 다중 32비트 버스, 최대 200MHz의 클록 속도 및 매우 효율적인 디버그 옵션을 제공합니다. 중요한 차이점은 DSP에 대한 Cortex-M4 코어의 기능입니다. Cortex-M3와 Cortex-M4는 동일한 아키텍처와 명령어 세트(Thumb-2)를 공유합니다. 응용 프로그램에 부동 소수점 수학이 필요한 경우 Cortex-M4에서보다 Cortex-M3에서 훨씬 더 빠르게 이 작업을 수행할 수 있습니다. 즉, Cortex-M4의 DSP 또는 FPU 기능을 사용하지 않는 애플리케이션의 경우 Cortex-M3에서 동일한 수준의 성능 및 전력 소비를 볼 수 있습니다. 즉, DSP 기능이 필요하면 Cortex-M4로 가십시오. 그렇지 않으면 Cortex-M3가 작업을 수행합니다.

 

결론

그림 2. 피질 개요

 

ARM 프로세서는 목적에 따라 다양한 기능을 제공합니다. 약간의 생각과 조사를 통해 응용 프로그램 요구 사항에 맞는 올바른 프로세서를 찾을 수 있습니다. 고급 태블릿용이든 초저가 무선 센서 노드용이든 상관없습니다.

Cortex 코어를 올바르게 선택하고 아이디어를 현실로 만드는 것은 도전입니다. 그러나 숙련된 전문가 팀은 모든 문제를 처리하고 복잡한 개념을 구현할 수 있습니다.

오리엔트디스플레이는 다년간 ARM 프로세서 관련 기술에 집중해 왔으며 ARM 아키텍처 제품의 개발 및 구현에 대한 풍부한 경험을 축적했습니다. 시장의 일반적인 요구 사항을 충족하는 개발 플랫폼 및 코어 보드를 지속적으로 출시하는 동시에 고객의 개별 프로젝트 요구 사항도 해결합니다. 맞춤형 서비스를 제공합니다.

우리의 하드웨어 팀은 귀하의 디자인 아이디어와 요구 사항에 따라 가장 짧은 시간에 프로토타입을 생산할 수 있습니다. 당사 소프트웨어 팀은 절단 드라이버 레이어의 모든 기능을 사용자 정의하는 데 도움을 드릴 수 있습니다.

문의하기 초기 아이디어에서 최종 제품까지 계획을 세울 수 있도록 도와드리겠습니다.