일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 인공지능
- 삼성전자 소프트웨어멤버십 SSM
- 동아리
- Neural Network
- 구글 앱 엔진
- 패턴인식
- NarwalFreo
- Friendship
- 삼성
- 갤럭시탭S8울트라
- 신경회로망
- 나르왈프레오
- 증강현실
- Google App Engine
- 삼성소프트웨어멤버십
- 신경망
- 파이썬
- 빅데이터
- 물걸레로봇청소기추천
- 패턴 인식
- 고려대학교
- BAM
- 물걸레자동세척로봇청소기
- Bidirectional Associative Memory
- hopfield network
- 멤버십
- 가상화
- SSM
- Python
- 하이퍼바이저
- Today
- Total
정보공간_1
[6기 수원 조성찬] Arm cortex-M3 기본 개요 본문
안녕하세요 엘리트멤버 6기, 수원멤버십 23-1기 조성찬입니다.
임베디드에 대해서 공부하는데 학생여러분이 쉽게 점하는 MCU는 AVR 계열과 ARM 계열이 아닌가 합니다. 그래서 이번에 ARM cortex - M3에 대해서 포스팅 해보려 합니다.
1. ARM(Advanced RISC Machine)
ARM 계열 MCU라고 불리우는 칩들을 설계하는 회사입니다. 이 회사의 특이한 점은 직접 칩을 설계, 생산하는 것이 아닌 설계만 한다는 점입니다. MCU를 설계 하고나면 그 설계(License)를 파는 형식이기 때문에 다른 회사들이 그 설계를 사서 직접 생산 하는 것이 특징이라고 할 수 있습니다. 그렇기 때문에 같은 Arm칩이라고 해도 약간은 다른 모양을 가진 칩이 있고, 각기 다른 형태의 Board가 존재할 수 있는 것입니다.
2. Arm cortex 시리즈
ARM 사에서 출시된 MCU들중 최근에 많이 쓰이는 cortex 시리즈에 대해서 알아보도록 하겠습니다. 특이하게도 Arm cortex 시리즈는 A-series, R-series, M-series 가 있습니다. 공교롭게도 시리즈의 앞글자만 뽑으면 ARM이 되는 부분이 흥미롭습니다. 물론, 아무런 의미 없이 이렇게 이름 지은 것이 아니고 M은 Microcontroller, A는 Application, R은 Real-time을 의미 합니다.
이 외에도 표에 나와는 특징처럼 각기 특징과 주력으로 하는 방향이 존재합니다. 그 성능과 전력소모에 있어서도 A >> R >> M 시리즈 순서로 성능이 높은 동시에 전력소모가 큽니다. 그렇기 때문에 사용하는 용도별로 가장 적합한 MCU를 사용하게 됩니다. 대표적인 예로 높은 성능을 필요로 하는 경우인 스마트폰 같은 계열은 A 시리즈를, 저전력으로 휴대기기 또는 복잡하지 않은 제어를 하는 경우에는 M 시리즈를 주로 사용하게 됩니다.
3 Arm cortex - M3의 특징
우선 coretex-M3는 높은 성능을 요구하짐나 적은 가격을 가지는 플랫폼을 위한 MCU이기 떄문에 microcontroller, 산업체의 control system, wireless networking에 사용 가능한 특징이 있습니다. M3에서 사용가능한 16bit와 32bit가 혼합된 Thumb-2 명령어세트는 일반적인 마이크로컨트롤러 수준의 개발시스템에서 사용되는 작은 크기의 메모리에서도 높은 성능을 구현할 수 있고 또, 특유의 라이브러리 설계를 통해서 ARM7 프로세서 응용시스템을 Cortex-M3 프로세서로 쉽게 이식할 수 있습니다. 이 외에도 전력소모 절감을 위한 세 개의 슬립모드를 가지는 등의 다양한 장점이 있습니다.
4. Arm cortex-M3 block diagram
NVIC(Nested Vectored Interrupt Controller) : Processor core에 매우 밀접하게 연결되어 있는 블럭
MPU(Memory Protection Unit) : 8개의 영역으로 나누어 메모리를 보호할 수 있는 기능 보유
WIC(Wake-Up Interrup Controller)
· Very-deep-sleep mode에서 깨어날 때 Interrup Detection logic부분에 도움
· Power management 부분과도 연관이 높은 블럭
FPB(Flash Patch and Breakpoint)
· Breakpoint와 code patch를 구현하기 위한 부분
· Hardpoint breakpoint를 구현하고, Code 영역에서 System 영역으로 접근을 patch함
DWT(Data Watchpoint & Trace) : watchpoint, datapoint, system profiling를 구현하기 위한 것
ETM(Embedded Trace Macrocell) : Instruction trace을 지원하는 low-cost trace macrocell
ITM(Instrumentation Trace Macrocell) : Printf 스타일의 debugging을 지원
SW/SWJ-DP
· Debug control과 data access는 Advanced High-performance Bus-Access Port(AHB-AP) interface를 통해서 작동
· 이 interface는 Serial Wire Debug Port(SW-DP) 또는 Serial Wire JTAG Debug Port(SWJ-DP)에 의해 작동
BUS Matrix
- 프로세서와 디버그 인터페이스를 외부 버스와 연결하고, 아래의 외부 버스들과 연결
· I-Code Bus: code 영역에서 명령어와 vector를 fetch하는 32bit AHB-Lite bus
· D-Code Bus: code 영역에 대한 data load/store와 debuf access를 위한 32bit AHB-Lite bus
· System Bus: system 영역에 대한 명령어와 vector fetch, data load/store와 debug access를 위한 32bit AHB-Lite bus
· PPB(Private Peripheral Bus): PPB 영역에 대한 data load/store와 debug access를 위한 32bit APB(v3.0) bus
다음시간에는 Arm cortex-M3의 레지스터들과 라이브러리 구조에 대해서 다루어 보겟습니다.
참고
ARM Cortex-M3 시스템 프로그래밍 완전정복 1
http://www.ntrexgo.com/archives/15527
http://cafe.naver.com/embeddedcrazyboys/4632
http://poohyhoh.blogspot.kr/2010/08/arm-cortex-m3-stm32-processor-mode.html
'IT 놀이터 > Elite Member Tech & Talk' 카테고리의 다른 글
[6기 신촌 김윤상] R 언어 #1 - Data Analysis에 최적화된 R 언어 알아보기 (0) | 2014.08.08 |
---|---|
[6기 강북 전영진] 리눅스 커널 심층 분석 #0 (0) | 2014.08.07 |
[6기 수원 최웅엽] 궁금한 c++ 문법들 (0) | 2014.08.07 |
[6기 대구 허정욱] Detours 3.0 Express #1.API Hooking (0) | 2014.08.07 |
[6기 강북 홍진우] 64비트 멀티코어 OS#1 - 개발환경, 운영모드 (0) | 2014.08.07 |