SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
ARM 프로세서 개요
Hancheol Cho
ARM (Advanced RISC Machine)
ARM, originally Acorn RISC Machine, later Advanced RISC Machine, is
a family of reduced instruction set computing (RISC) architectures for
computer processors, configured for various environments. British
company ARM Holdings develops the architecture and licenses it to
other companies, who design their own products that implement one of
those architectures
출처
ARM Processor Family
출처 : arm.com
ARM Architecture 분류
Profile Architecture Instruction Set Processor
A-Profile ARMv7-A A32, T32 Cortex-A Series
R-Profile ARMv7-R A32, T32 Cortex-R Series
M-Profile
ARMv7-M T32 Cortex-M Series
ARMV6-M T32 Cortex-M0 Series
ARM Processor
출처 : arm.com
Cortex-R5 적용 예 - Xilinx Zynq
Cortex-M Processor
출처 : arm.com
Cortex-M Performance
출처 : arm.com
Cortex-M Instruction Set support
출처 : arm.com
Cortex-M7
Programmer’s model
Real Time OS ?
Context
● 스레드/태스크가 실행되기 위한 최소한의 데이터
○ CPU 레지스터, 스택포인터 등등..
Context Switching
출처
스케줄러
출처
스케줄러
출처
RTOS
Exception Vector
● 스택포인터 초기값을 지정 가능
○ 스타트업 코드도 C언어로 작성 가능
성능 비교
● 데이터 처리 속도
● Interrupt Latency
출처 : arm.com
Interrupt Latency
● Interrupt Latency ?
출처 : Link
● 기존 마이크로 컨트롤러와 비교
ST사의 MCU 구성
STM32CubeMX, STM32Cube
STM32Cube
DSP ?
● DSP 장점
○ 연산모듈이 8개 (최대 1Clock에 8개의 명령어 실행 가능)
○ Very-Long-Instruction-Word (VLIW)
○ 데이터 버스 최대 256bit
○ 소프트 파이프라인을 통한 병렬 실행
DSP ?
● DSP 단점
○ 인터럽트 발생시 명령어가 길어서 연산속도에 영향을 많음
■ 최적화시 기본적으로 인터럽트가 Disable됨으로 인터럽트 사용시에는 최적화 옵션
사용시 주의가 필요함
■ ARM 프로세서와 듀얼로 많이 사용
○ 최적화에 따른 속도 편차가 심함
■ 연산모듈은 8개이나 명령어 종류에 따른 동시 실행이 안되는 경우가 있음
■ 컴파일러 옵션만으로는 최적화의 한계가 있음으로 TI에서 제공하는 최적화 라이브러리
사용 권장
○ 캐시에 대한 영향이 크다
■ 명령어도 길고 데이터도 크기때문에 캐시 메모리에서 실행시와 외부메모리에서 실행시
속도 편차가 큼
● DSP 장점
○ DMA 기능이 강력함
■ DMA 기능만으로도 일부 이미지 처리가 가능함
OpenCR (Open-source Control Module for ROS)
● STM32F746ZGT6 216Mhz, Cortex-M7, 1MB Flash, 320KB SRAM
● 아두이노 우노 핀 헤더
● 아두이노 IDE 개발환경 지원
● 다이나믹셀/올로/UART/CAN 인터페이스
● 배터리 입력 및 전원 출력(12V/5V/3.3V)
https://github.com/ROBOTIS-GIT/OpenCR/wiki
OpenCR (Open-source Control Module for ROS)
● Turtlebot3 Burger/Waffle의 제어기로 사용됨
OpenCR (Open-source Control Module for ROS)
● 활용 예제
https://youtu.be/-_kBfIS6wJs
OpenCR (Open-source Control Module for ROS)
● 하드웨어 자료
○ https://github.com/ROBOTIS-GIT/OpenCR-Hardware
● 펌웨어 자료
○ https://github.com/ROBOTIS-GIT/OpenCR
https://github.com/ROBOTIS-GIT/OpenCR/wiki

Mais conteúdo relacionado

Mais procurados

LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLinaro
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot) Omkar Rane
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device driversHoucheng Lin
 
Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Aananth C N
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)RuggedBoardGroup
 
Linux Kernel Module - For NLKB
Linux Kernel Module - For NLKBLinux Kernel Module - For NLKB
Linux Kernel Module - For NLKBshimosawa
 
Linux Initialization Process (1)
Linux Initialization Process (1)Linux Initialization Process (1)
Linux Initialization Process (1)shimosawa
 
Tegra 186のu-boot & Linux
Tegra 186のu-boot & LinuxTegra 186のu-boot & Linux
Tegra 186のu-boot & LinuxMr. Vengineer
 
Static partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-VStatic partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-VRISC-V International
 
Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_Linaro
 
Embedded_Linux_Booting
Embedded_Linux_BootingEmbedded_Linux_Booting
Embedded_Linux_BootingRashila Rr
 
Board support package_on_linux
Board support package_on_linuxBoard support package_on_linux
Board support package_on_linuxVandana Salve
 
The Linux Kernel Scheduler (For Beginners) - SFO17-421
The Linux Kernel Scheduler (For Beginners) - SFO17-421The Linux Kernel Scheduler (For Beginners) - SFO17-421
The Linux Kernel Scheduler (For Beginners) - SFO17-421Linaro
 
Gestão de sistemas operacionais - aula 1
Gestão de sistemas operacionais - aula 1Gestão de sistemas operacionais - aula 1
Gestão de sistemas operacionais - aula 1Fernando Ottoni
 

Mais procurados (20)

LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot)
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device drivers
 
Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Virtualization Support in ARMv8+
Virtualization Support in ARMv8+
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
 
U-Boot - An universal bootloader
U-Boot - An universal bootloader U-Boot - An universal bootloader
U-Boot - An universal bootloader
 
Linux Kernel Module - For NLKB
Linux Kernel Module - For NLKBLinux Kernel Module - For NLKB
Linux Kernel Module - For NLKB
 
Linux Initialization Process (1)
Linux Initialization Process (1)Linux Initialization Process (1)
Linux Initialization Process (1)
 
Tegra 186のu-boot & Linux
Tegra 186のu-boot & LinuxTegra 186のu-boot & Linux
Tegra 186のu-boot & Linux
 
Making Linux do Hard Real-time
Making Linux do Hard Real-timeMaking Linux do Hard Real-time
Making Linux do Hard Real-time
 
Static partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-VStatic partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-V
 
Introduction to Modern U-Boot
Introduction to Modern U-BootIntroduction to Modern U-Boot
Introduction to Modern U-Boot
 
Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_
 
Embedded_Linux_Booting
Embedded_Linux_BootingEmbedded_Linux_Booting
Embedded_Linux_Booting
 
Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)
 
Embedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernelEmbedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernel
 
Board support package_on_linux
Board support package_on_linuxBoard support package_on_linux
Board support package_on_linux
 
The Linux Kernel Scheduler (For Beginners) - SFO17-421
The Linux Kernel Scheduler (For Beginners) - SFO17-421The Linux Kernel Scheduler (For Beginners) - SFO17-421
The Linux Kernel Scheduler (For Beginners) - SFO17-421
 
Embedded Linux on ARM
Embedded Linux on ARMEmbedded Linux on ARM
Embedded Linux on ARM
 
Gestão de sistemas operacionais - aula 1
Gestão de sistemas operacionais - aula 1Gestão de sistemas operacionais - aula 1
Gestão de sistemas operacionais - aula 1
 

Semelhante a 강좌 01 ARM 프로세서 개요

[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹GangSeok Lee
 
MCU(nanheekim)
MCU(nanheekim)MCU(nanheekim)
MCU(nanheekim)Nanhee Kim
 
[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표sung ki choi
 
iWorks 아이웍스의 비즈니스, IBM Power Chip(CPU)에 대하여
iWorks 아이웍스의 비즈니스, IBM Power Chip(CPU)에 대하여iWorks 아이웍스의 비즈니스, IBM Power Chip(CPU)에 대하여
iWorks 아이웍스의 비즈니스, IBM Power Chip(CPU)에 대하여아이웍스 | iWorks Inc.
 
Assembly 스터디 1
Assembly 스터디 1Assembly 스터디 1
Assembly 스터디 1Jinkyoung Kim
 
백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나Daniel Shin
 
Power_780+(9179-MHD)표준제안서
Power_780+(9179-MHD)표준제안서Power_780+(9179-MHD)표준제안서
Power_780+(9179-MHD)표준제안서기한 김
 
Acute travel logic logic analyzer(s)
Acute travel logic logic analyzer(s)Acute travel logic logic analyzer(s)
Acute travel logic logic analyzer(s)WAVENIX CO.,LTD.
 
[2B2]기계 친화성을 중심으로 접근한 최적화 기법
[2B2]기계 친화성을 중심으로 접근한 최적화 기법[2B2]기계 친화성을 중심으로 접근한 최적화 기법
[2B2]기계 친화성을 중심으로 접근한 최적화 기법NAVER D2
 
망고100 보드로 놀아보자 12
망고100 보드로 놀아보자  12망고100 보드로 놀아보자  12
망고100 보드로 놀아보자 12종인 전
 
[2B5]nBase-ARC Redis Cluster
[2B5]nBase-ARC Redis Cluster[2B5]nBase-ARC Redis Cluster
[2B5]nBase-ARC Redis ClusterNAVER D2
 
마이크로 서버 기술 동향
마이크로 서버 기술 동향마이크로 서버 기술 동향
마이크로 서버 기술 동향atelier t*h
 

Semelhante a 강좌 01 ARM 프로세서 개요 (20)

[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹
 
MCU(nanheekim)
MCU(nanheekim)MCU(nanheekim)
MCU(nanheekim)
 
Avr lecture1
Avr lecture1Avr lecture1
Avr lecture1
 
[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표
 
iWorks 아이웍스의 비즈니스, IBM Power Chip(CPU)에 대하여
iWorks 아이웍스의 비즈니스, IBM Power Chip(CPU)에 대하여iWorks 아이웍스의 비즈니스, IBM Power Chip(CPU)에 대하여
iWorks 아이웍스의 비즈니스, IBM Power Chip(CPU)에 대하여
 
Assembly 스터디 1
Assembly 스터디 1Assembly 스터디 1
Assembly 스터디 1
 
백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나
 
Cpu basic
Cpu basicCpu basic
Cpu basic
 
Chapter2 ap group11
Chapter2 ap group11Chapter2 ap group11
Chapter2 ap group11
 
Power_780+(9179-MHD)표준제안서
Power_780+(9179-MHD)표준제안서Power_780+(9179-MHD)표준제안서
Power_780+(9179-MHD)표준제안서
 
Acute travel logic logic analyzer(s)
Acute travel logic logic analyzer(s)Acute travel logic logic analyzer(s)
Acute travel logic logic analyzer(s)
 
[2B2]기계 친화성을 중심으로 접근한 최적화 기법
[2B2]기계 친화성을 중심으로 접근한 최적화 기법[2B2]기계 친화성을 중심으로 접근한 최적화 기법
[2B2]기계 친화성을 중심으로 접근한 최적화 기법
 
망고100 보드로 놀아보자 12
망고100 보드로 놀아보자  12망고100 보드로 놀아보자  12
망고100 보드로 놀아보자 12
 
Processor
ProcessorProcessor
Processor
 
Nec 이비플러스
Nec 이비플러스Nec 이비플러스
Nec 이비플러스
 
[IBM 서버] POWER9
[IBM 서버] POWER9[IBM 서버] POWER9
[IBM 서버] POWER9
 
[2B5]nBase-ARC Redis Cluster
[2B5]nBase-ARC Redis Cluster[2B5]nBase-ARC Redis Cluster
[2B5]nBase-ARC Redis Cluster
 
Teratec Cluster
Teratec ClusterTeratec Cluster
Teratec Cluster
 
마이크로 서버 기술 동향
마이크로 서버 기술 동향마이크로 서버 기술 동향
마이크로 서버 기술 동향
 
Nvidia architecture
Nvidia architectureNvidia architecture
Nvidia architecture
 

Mais de chcbaram

OROCABOY3 제작기
OROCABOY3 제작기OROCABOY3 제작기
OROCABOY3 제작기chcbaram
 
강좌 05 통신용 PC 프로그래밍
강좌 05 통신용 PC 프로그래밍강좌 05 통신용 PC 프로그래밍
강좌 05 통신용 PC 프로그래밍chcbaram
 
OpenCR tutorial_icra2017
OpenCR tutorial_icra2017 OpenCR tutorial_icra2017
OpenCR tutorial_icra2017 chcbaram
 
OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발chcbaram
 
아두이노와 Fpga를 이용한 로봇제작
아두이노와 Fpga를 이용한 로봇제작아두이노와 Fpga를 이용한 로봇제작
아두이노와 Fpga를 이용한 로봇제작chcbaram
 
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.chcbaram
 
SkyRover Firmware
SkyRover FirmwareSkyRover Firmware
SkyRover Firmwarechcbaram
 

Mais de chcbaram (7)

OROCABOY3 제작기
OROCABOY3 제작기OROCABOY3 제작기
OROCABOY3 제작기
 
강좌 05 통신용 PC 프로그래밍
강좌 05 통신용 PC 프로그래밍강좌 05 통신용 PC 프로그래밍
강좌 05 통신용 PC 프로그래밍
 
OpenCR tutorial_icra2017
OpenCR tutorial_icra2017 OpenCR tutorial_icra2017
OpenCR tutorial_icra2017
 
OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발
 
아두이노와 Fpga를 이용한 로봇제작
아두이노와 Fpga를 이용한 로봇제작아두이노와 Fpga를 이용한 로봇제작
아두이노와 Fpga를 이용한 로봇제작
 
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
 
SkyRover Firmware
SkyRover FirmwareSkyRover Firmware
SkyRover Firmware
 

강좌 01 ARM 프로세서 개요