728x90

1) CPU 메모리맵

메모리맵

- 메모리의 주소에 대한 정보

- 메모리 : RAM, ROM, 레지스터

 

레지스터

- CPU에 장착된 디바이스 제어용으로 만든 하드웨어

- 주소가지며, 바이트단위 접근, RW속성을 가져 메모리와 거의 동일

- 데이터 저장이아닌 디바이스 제어용

- 펌웨어 코드는 관련 레지스터 제어로 가능

 

LED 켜고 끄기

- GPIO로 제어

- LED가 연결된 핀을 찾아 해당 핀을 GPIO 관련 레지스터를 출력으로 바꿈

- 출력값을 결정하는 레지스터를 찾아 low로 할지 high 할지 결정

ex) 입출력 설정 레지스터 : 0x2000

    출력 값 레지스터 : 0x2001

*(0x2000) = 0b00000001;

*(0x2001) = 0b00000001;

 

메모리맵

- 레지스터를 통해 디바이스 제어시 반드시 필요

메모리 맵 예시

 

 

프로그램 메모리

-실행 코드가 저장된 메모리

- 128KB 크기의 플래시 메모리

- 16비트 단위 어드레싱 구조 -> 주소값 1개에 16비트 데이터를 저장하고 읽을수 있음

- $ : 16진수/ 0000 : 주소값 -> 16진수 0000부터 FFFF까지 주소값(=64K)을 가지고 한 주소마다 16비트(2byte)가 저장

프로그램 메모리

 

데이터 메모리

- 0000 ~ 001F는 32개 일반 레지스터

- 0020부터 005F 까지는 64개의 IO 레지스터

- 0060부터 10FF까지 160개의 확장 IO 레지스터

- 0100부터 10FF까지 4KB 크기의 내부 SRAM

- 8비트 단위 어드레싱 구조를 가지고 있어 한 주소값에 8비트 저장

 

데이터 메모리

EEPROM

- 0000 ~ 0FFF 주소값 가짐 -> 4KB

EPPROM

 

레지스터 맵

1. 일반 레지스터(32개) 

   - 주소값 : 0000 ~ 001F

   - ALU에 연결되어 산술/논리 연산에 사용됨

2. IO 레지스터(64개)

   - 주소값 : 0020~005F

   - CPU 내부 디바이스 제어

3. 확장 IO 레지스터(160개)

   - 주소값 : 0060 ~ 00FF

   - CPU 내부 디바이스 제어

 

레지스터 서머리

- 레지스터 주소 중 괄호 안 주소값이 유효한 값

- 모든 레지스터는 8비트 크기 가짐.

레지스터 주소

 

300x250

+ Recent posts