- ARM 강좌
    ARM9 Architecture
    ARM9 Application
 
- Cortex-M3 강좌
    Cortex-M3 Architecture
    STM32F103 Application
 
- ARM 제품 메뉴얼
    S5PV210 제품 메뉴얼
    S3C6410 제품 메뉴얼
 
- JTAG 메뉴얼
    ARM계열 JTAG
    AVR JTAG
 
- ARM 컴파일러
    KEIL/IAR/RIDE7
    GCC/Eclipse
 
- ATMEGA 컴파일러
    AVR STudio 4.x
    ICCAVR
 
  - 기타
    기타 모듈들 메뉴얼
    Google Mercurial
 
 

이 자료는 ARM을 처음 접하는 입문자로서 S/W 엔지니어 혹은 H/W 엔지니어를 대상으로 하였습니다. 처음에는 Cortex-M3 구조를 목표로 하였으나 전통적인 ARM(주로 ARM7, ARM9)의 구조에 대해서 먼저 이야기 하고 Cortex-M3 구조에 대해서 하기로 마음을 고쳐 먹었습니다. Cortex-M3도 ARM 이기 때문에 전통적인 ARM의 구조에 대해서 잘 이해하고 Cortex-M3 구조와 비교해 보면서 공부 한다면 큰 도움이 될 것입니다. ARM Architecture 강의는 특정 CPU(S3C2440, STM32Fxx) 보다는 ARM의 이론적인 구조 자체에 대해서 많은 설명을 하고 있습니다. 하지만 일반적인 ARM의 구조를 잘 이해하면 특정 벤더의 CPU도 쉽게 이해할 수 있을 것이라 생각 됩니다. 처음에는 주로 임베디스 시스템에 대한 이론을 공부하게 될것이고 이후에 ARM의 구조, 레지스터, Instructions 등에 대해서 설명을 해 나갈 것입니니다. 이론 설명이 끝나면 실제 타겟 보드를 선정하여 이론으로만 설명했던 내용을 직접 코딩해 보고 타겟에 다운로드하여 결과를 확인하는 실습을 해보도록 하겠습니다. I. ARM Architecture ~ IV. Cortex-M3 Applications 까지 분명 쉽지않은 지루하고도 먼 여행이 되겠지만 ARM을 공부하는 임베디드관련 엔지니어라면 언젠가는 한번은 넘어야 하는 산이라 생각 됩니다. 부디 이 자료가 ARM을 정복하는데 조금이라도 도움이 되시길 바랍니다.

* 강의 전체 로드맵

I. ARM Architecture
임베이드 시스템 개론에 대한 설명과 ARM7, ARM9 의 구조에 대해서 설명 합니다.

II. ARM Applications
삼성의 S3C2440(ARM9) 개발보드(S3C2440 Mini 개발보드)를 이용해서 어셈블리어와 UART, GPIO 등을 실습 합니다.

III. Cortex-M3 Architecture
Cortex-M3의 특징과 구조에 대해서 설명 합니다.

IV. Cortex-M3 Applications
STM32F103VCT6 Dragon 개발보드를 이용해서 GPIO, LCD, SPI, UART, MP3, SDIO, I2C 등을 실습 합니다.

이 강의 자료에 대한 모든 질의사항은 http://cafe.naver.com/avrstudio 의 ARM Architecture Q&A 게시판에 글을 남겨 주시거나 jk@deviceshop.net 로 메일을 보내주시기 바랍니다. 가급적이면 여러 사람이 질문에 대한 답변을 공유 할수 있도록 네이버 카폐 게시판을 이용해 주셨으면 합니다. 감사합니다
 

1. 임베디스 시스템 소개
   1.1 Embedded System 이란
   1.2 Embedded System 구성
   1.3 Operating System
2. Processor
   2.1 CPU
   2.2 RISC and CISC
   2.3 General Register
   2.4 SFR(Special Function Register)
   2.5 ALU (Arithmetic Logic Unit)
   2.6 Control Unit
   2.7 Bus
   2.8 Processor 기본 동작
   2.9 Pipeline
3. 프로세서 성능
   3.1 CPU 성능 증가 기법들
   3.2 CPU Clock 증가의 한계점
   3.3 Multi Core Processor
4. Embedded Software
   4.1 Machine & Language
   4.2 컴파일러
   4.3 어셈블러
   4.4 Linker
5. ARM Processor
   5.1 ARM 프로세서의 종류
   5.2 ARM Processor 선택
6. ARM Architecture
   6.1 ARM based system
   6.2 ARM Operating Modes
   6.3 ARM Registers
   6.4 ARM Exceptions
   6.5 Exception 과 Interrupt의 차이
7. ARM Instruction Sets
   7.1 Understanding ARM Instruction set
   7.2 ARM Instruction sets
   7.3 Data Processing Instructions
   7.4 Multiply Instructions
   7.5 Load/Store Instructions
   7.6 Load/Store Multiple Instructions    
   7.7 Branch Instructions
   7.8 Status Register Access Instructions
   7.9 Software Interrupt Instruction
   7.10 SWP Instruction
   7.11 Conditional Execution
8. Thumb Instruction Sets
   8.1 Thumb Instruction 특징
   8.2 Thumb Instruction 제약 사항
   8.3 Thumb, ARM Instruction compare
   8.4 ARM/Thumb Interworking
9. AAPCS
   9.1 Procedure Call Standard for the ARM Architecture
   9.2 Function Parameter Passing