본문 바로가기

인터럽트2

8-Bit AVR 스택(Stack) 살펴보기 스택의 목적 스택은 주로 임시 데이터, 지역 변수, 그리고 서브 루틴 명령이나 인터럽트 이후 리턴 주소를 저장하는 데 사용됩니다. 이는 높은 메모리 위치부터 낮은 메모리 위치 방향으로 구현됩니다. 스택 포인터 레지스터는 항상 스택 최상단을 가리킵니다. 또한 서브루틴과 인터럽트 스택이 위치한 SRAM 데이터 영역을 가리킵니다. 스택 포인터 AVR에서 스택 포인터는 I/O 영역에 존재하는 8-bit 레지스터 2개로 이루어져 있습니다. BIT 번호는 구현하기에 따라 다릅니다. 참고: AVR 아키텍처 구현에서 데이터 영역이 매우 작다면 SPL 영역만 필요하고 SPH는 존재하지 않습니다. 스택 명령 푸쉬 명령은 스택 포인터 값을 낮춥니다. SRAM 내에 스택은 반드시 서브루틴 명령이나 인터럽트 이전에, 프로그램에.. 2022. 3. 22.
8-Bit AVR 코어 살펴 보기 (레지스터, ALU, 메모리, 인터럽트) AVR Central Processing Unit (CPU)의 주요 역할은 정상적인 프로그램 수행입니다. 그러므로 CPU는 반드시 메모리에 접근할 수 있어야하고, 계산을 수행하고, 주변장치를 제어하고 인터럽트를 관리할 수 있어야 합니다. AVR Core 구성이 어떻게 되어있는 지 살펴보도록 하겠습니다. AVR Core 살펴 보기 AVR은 하버드 구조*로 되어 있어, 프로그램과 데이터의 버스와 메모리가 각각 분리되어 있습니다. 프로그램 메모리 명령은 single-level 파이프라이닝**으로 수행됩니다. 이 파이프라이닝을 통해 매 clock cycle마다 명령들을 수행할 수 있습니다. 프로그램 메모리는 In-System Reprogrammable Flash memory***입니다. *하버드 구조: 프로그램.. 2022. 3. 20.