ARM Processor 7

익셉션 모드를 변경 시킬때 코어의 4단계 처리(인터럽트 발생시 코어가 해주는 일)

ARM 프로세서 익셉션과 모드 - ARM은 user모드와 system모드를 제외한 모드를 익셉션에 의해 변경 할 수 있다. 익셉션 모드를 변경 시킬때 코어는 자동으로 다음 4단계의 과정을 거친다. 1) 익셉션 모드의 spsr에 현재의 cpsr을 저장 2) lr에 현재의 pc를 저장 3) cpsr update 4) pc에 익셉션 핸들러 주소를 저장 => IRQ가 발생하게 되면 아래에서 보이는 벡터 테이블의 '0x18'로 자동으로 분기 해준다. (코어가 자동으로 해준다!!) - 익셉션의 종류 FIQ: 고속 인터럽트 처리 IRQ: 일반 인터럽트 처리 SVC: 운영체제를 위한 보호 모드 abort: 가상 메모리와 메모리 보호 처리 undefined: 하드웨어 코프로세서의 소프트웨어 에뮬레이션 - 벡터 테이블 익..

컴퓨터공부 2007.03.30

ARM에서 ASM과 C연결

자~ARM에 대해서 앞으로 쭉쭉 같이 공부 해 나가도록 합시다. ARM processor에만 치우치기 보다는 전반적인 기본 원리, 배경상식, 등등 기초지식이 없는 사람들도 보고 감이 올수 있도록 같이...왜냐면 나도 ARM을 공부하는 중이므로, 아주 조금;;-_-;; 임베디드에 관심 있는 사람들이라면, 당연히 알고 있어야 할 칩, 썬칩도 아니고 ARM칩에 대해서..나 요새 심히 이상스럽다.. 먼저 하드웨어 프로그래밍이다 보니, 어쩔수 없이 C코딩과 더불어 어셈블리 코드가 들어갈 수 밖에 없다. 물론 어셈블리 코드로 모두다 짜야 하는건 아니지만, 최소한 어셈블리 코드를 보고 이해할 수 있어야 한다. 어셈블리 부터 설명하고 싶지만, 사실은 지금 나도 배우는 단계에 있으므로....예를 들면 이러한 코드를 해석..

컴퓨터공부 2007.03.19

ARM System Developer's Guide 에 대한 씨랩시스 질문 답

질문1,2 (www.clabsys.com Q/A에 올린 질문) 번역서 76페이지중 Example3.18에서 LDM과 STM등을 사용하는 곳이 나옵니다. 그 명령어에서 레지스터에 값이 써지는 순서가 끼워맞춰서는 이해가 되는데, 명확히 설명된 부분이 없어서 문의드립니다. 제 생각으로는 LDM관련 명령어는 {r1-r3}일때 읽어들이는 순서가 r1->r3 이고, STM관련 명령어는 {r1-r3}일때 저장순서가 r3->r1이라고 보이는데,제가 생각하는게 맞는지 틀리면, 어떤순서로 읽기및 저장이 되는지 설명좀 부탁드립니다. 그리고, 84페이지중 Example3.25에서 LDMFD sp!, {r0-r12, pc}^ 라는 명령어가 나옵니다. 그중 제일 마지막에 있는 ^가 하는 기능이 어떤건지도 설명좀 부탁드립니다. 답..

컴퓨터공부 2007.03.16

주요 ARM 어셈블리 명령

자주 사용되는 ARM 어셈블리 명령어 요약 1. MOV ARM 어셈블리 명령어는 MOV 명령어와 논리 및 사칙연산 명령어에 모두 쉬프트 연산이 가능한데, 이것을 나타내는 표지가 끝에 붙을 수 있다는 것에 유의한다. 쉬프트 연산에는 ASR(오른쪽 쉬프트, 빈자리는 부호가 따라옴), LSR(오른쪽으로 쉬프트, 빈자리는 0으로 채워짐), LSL(왼쪽으로 쉬프트, 빈자리는 0으로 채워짐), ROR(오른쪽으로 rotation ) 정도를 알아두면 유용하다. 예) MOV r0, [r2,r4] ; r2+r4 의 주소에 있는 값을 읽어서 r0에 저장한다. MOV r1, r2, ROR #1 ; r2를 오른쪽으로 한 비트만큼 rotation 해서 r1에 저장 2. ADD, SUB, AND, ORR 예) ADD r1, r2,..

컴퓨터공부 2007.03.16

arm의 psr

ARM의 Program Status Register 1개의 CPSR ( Current Program Status Register ) 6개의 SPSR ( Saved Program Status Register ) PSR 의 정보 Condition code flag // ALU의 연산 결과 정보를 가지고 있는 flag 정보를 가지고 있다 Control bits // 프로세서를 제어하기 위한 비트 Reserved // 미래에 사용할 목적으로 예약해놓은 부분 ( 상태 필드, 확장 필드 ) Flag Bits ALU를 통한 명령의 실행결과를 나타내는 부분 Control Bits 프로세서의 모드, 동작 State 와 인터럽트를 제어 I/F 비트 IRQ( I 비트 ) 또는 FIQ ( F 비트 ) 를 disable( 세트..

컴퓨터공부 2007.03.14

ARM의 AHB와 ASB

AHB는 1996년에 소개되어, ARM 프로세서에 사용되는 온칩 버스 아키텍처로 사용되어 왔다. 첫번째 AMBA버스는 ASB와 APB를 소개하였고, 그 후에 ARM은 AHB라는 또 다른 버스를 소개하였다. AMBA를 사용할때 주변 장치를 설계하는 사람은 여러프로젝트에서 똑같은 디자인을 재활용 할수 있다. AMBA 인터페이스와 함께 개발된 많은 주변장치가 있기 대문에, 하드웨어 설계자는 충분히 테스트되고 검정된 다양한 주변장치를 선택적으로 사용할수 있다. 주변 장치는 각기 다른 프로세서 아키텍처를 위한 인터페이스를 다시 변경하지않고 온칩 버스에 쉽게 부착하여 사용할수있다. 하드웨어 개발자를 위한 플러그 앤 플레이 인터페이스는 사용성과 타이 투 마켓을 향상시켜 주었다. AHB는 ASB보다 많은 데이타량을 처..

컴퓨터공부 2007.03.14