MCU 프로그래밍을 할 때 데이터시트를 보면 같은 레지스터에 두 가지 주소가 붙어있는 걸 볼 수 있다. 하나는 I/O 주소, 다른 하나는 데이터 주소다. I/O 주소ATmega328P에는 64바이트짜리 작은 공간이 있다.여기에 PORTB, DDRB, PINB 같은 하드웨어 제어 레지스터가 배치돼 있다.이 공간의 주소를 I/O 주소라고 부른다.이 영역은 CPU의 특수 명령어 IN, OUT, SBI, CBI 같은 걸로 접근할 수 있다.장점은 빠르다는 것. 1클럭에 입출력을 처리할 수 있다. 데이터 주소동시에, 똑같은 레지스터들이 SRAM 공간에도 매핑돼 있다.이게 데이터 주소다.예를 들어 PORTB의 경우:I/O 주소: 0x05데이터 주소: 0x25데이터 주소로 접근할 때는 LDS, STS 같은 일반 메모리..