구글에서 검색하다 나온 자료인
Practical Firmware Reversing and Exploit Developmetn for AVR-based Embedded Devices
에서 나온 ATmega128에 대한 정보를 정리하였다.

AVR = Alf and Vegard's RISC processor 

(1) 구조
Modifed Harvard architecture 8-bit RISC single-chip microcontroller 
Haravrd architecture ?
간단히 말하자면 명령어 버스와 데이터 버스를 물리적으로 분할한 컴퓨터 구조

(2) 용도
Industrial PLCs and gateways
IoT
HID devices
Automotive applications
Radio applications
Arduino platform
...

(3)Core


보면 code 와 data가 분리되어있음을 확인 할 수 있다.

(4) Memory Map
-A 유형
0000 ~ FFFF 번지 까지 있음
0000 ~ 001F 는 레지스터 (32)
0020 ~ 005F 는 I/O 레지스터(64)
0060 ~ 00FF 는 External I/O 레지스터(160)
0100 ~ 10FF 는 Internal SRAM
1100 ~         는 External SRAM 
-B 유형
0000 ~ FFFF 번지 까지 있음
0000 ~ 001F 는 레지스터 (32)
0020 ~ 005F 는 I/O 레지스터(64)
0060 ~ 0FFF 는 Internal SRAM
1000 ~         는 External SRAM

(5) Registers
R1~R25 - GPR
X,Y,Z      - pair "working" registers e.g memory addressing operations <- 메모리맵에 26~32번에 해당
I/O registers - 다른 하드웨어에 접근하기 위한 용도

(6) special registers
PC - program counter , 16 bit register
SP - stack pointer, 16 bit register
SREG - status register 8 bit register

(7) Memory addressing
SRAM/EEPROM - 16-bit addressing, 8-bit element 단위는 8bit지만 16bit 간격으로 하나의 번지임
Flash - 16(8)-bit addressing, 16-bit element

'reversing.kr' 카테고리의 다른 글

AVR reverse engineering (5) CustomShell  (0) 2018.08.06
reversing.kr CRC1  (0) 2018.02.07
AVR reverse engineering (4) CustomShell  (0) 2018.02.05
AVR reverse engineering (3) CustomShell  (0) 2018.02.05
AVR reverse engineering(1) - 환경구축  (0) 2018.01.29

+ Recent posts