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
레지스터 맵
1. 일반 레지스터(32개)
- 주소값 : 0000 ~ 001F
- ALU에 연결되어 산술/논리 연산에 사용됨
2. IO 레지스터(64개)
- 주소값 : 0020~005F
- CPU 내부 디바이스 제어
3. 확장 IO 레지스터(160개)
- 주소값 : 0060 ~ 00FF
- CPU 내부 디바이스 제어
레지스터 서머리
- 레지스터 주소 중 괄호 안 주소값이 유효한 값
- 모든 레지스터는 8비트 크기 가짐.
'컴퓨터과학 > 임베디드' 카테고리의 다른 글
임베디드 SW 엔지니어링 - 2 하드웨어 분석 (0) | 2020.05.24 |
---|---|
임베디드 SW 엔지니어링 - 1 임베디드 시스템 개요 (0) | 2020.05.24 |
펌웨어구현 환경구축 10 - 마이크로 프로세서 내부 구조 (0) | 2020.05.07 |
펌웨어구현 환경구축 9 - 데이터시트 분석 (0) | 2020.05.06 |
펌웨어구현 환경구축 8 - 회로도 분석 (0) | 2020.05.06 |