정보공간_1

[6기 수원 조성찬] Arm cortex-M3 기본 개요 본문

IT 놀이터/Elite Member Tech & Talk

[6기 수원 조성찬] Arm cortex-M3 기본 개요

알 수 없는 사용자 2014. 8. 7. 16:28

안녕하세요 엘리트멤버 6, 수원멤버십 23-1기 조성찬입니다.

임베디드에 대해서 공부하는데 학생여러분이 쉽게 점하는 MCUAVR 계열과 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이 되는 부분이 흥미롭습니다. 물론, 아무런 의미 없이 이렇게 이름 지은 것이 아니고 MMicrocontroller, AApplication, RReal-time을 의미 합니다.

이 외에도 표에 나와는 특징처럼 각기 특징과 주력으로 하는 방향이 존재합니다. 그 성능과 전력소모에 있어서도 A >> R >> M 시리즈 순서로 성능이 높은 동시에 전력소모가 큽니다. 그렇기 때문에 사용하는 용도별로 가장 적합한 MCU를 사용하게 됩니다. 대표적인 예로 높은 성능을 필요로 하는 경우인 스마트폰 같은 계열은 A 시리즈를, 저전력으로 휴대기기 또는 복잡하지 않은 제어를 하는 경우에는 M 시리즈를 주로 사용하게 됩니다.

 

3 Arm cortex - M3의 특징

우선 coretex-M3는 높은 성능을 요구하짐나 적은 가격을 가지는 플랫폼을 위한 MCU이기 떄문에 microcontroller, 산업체의 control system, wireless networking에 사용 가능한 특징이 있습니다. M3에서 사용가능한 16bit32bit가 혼합된 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)

· Breakpointcode 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 controldata access는 Advanced High-performance Bus-Access Port(AHB-AP) interface를 통해서 작동

· interfaceSerial Wire Debug Port(SW-DP) 또는 Serial Wire JTAG Debug Port(SWJ-DP)에 의해 작동

BUS Matrix

- 프로세서와 디버그 인터페이스를 외부 버스와 연결하고, 아래의 외부 버스들과 연결

· I-Code Bus: code 영역에서 명령어와 vectorfetch하는 32bit AHB-Lite bus

· D-Code Bus: code 영역에 대한 data load/storedebuf access를 위한 32bit AHB-Lite bus

· System Bus: system 영역에 대한 명령어와 vector fetch, data load/storedebug access를 위한 32bit AHB-Lite bus

· PPB(Private Peripheral Bus): PPB 영역에 대한 data load/storedebug 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