그라운드 임베디드 EN 유튜브 구독

로드맵

기초 · 과목 04

컴퓨터구조

메모리 맵과 인터럽트의 원리를 알아야 데이터시트와 레퍼런스 매뉴얼이 읽힙니다.

목표: 내가 짠 C 코드가 칩 안에서 어떻게 실행되는지 설명할 수 있다.

  • 초급난이도
  • 약 3주하루 1시간 기준
  • 10개주제
  • 1개실험실

먼저 볼 과목 C 언어디지털 논리

다음 과목 기계어와 어셈블리MCU 펌웨어

지도에서 보기 →
  1. 폰 노이만과 하버드 구조

    코드와 데이터를 같은 길로 읽느냐, 따로 읽느냐의 차이.

  2. CPU 내부 구조

    레지스터, ALU, 프로그램 카운터, 그리고 명령어를 가져와 실행하는 반복.

  3. 파이프라인

    명령어 여러 개를 겹쳐 처리하는 방법과 분기가 느린 이유.

  4. 메모리 계층

    레지스터, 캐시, SRAM, Flash. 빠를수록 작고 비쌉니다.

  5. 메모리 맵

    코드는 Flash에, 변수는 SRAM에. MCU의 모든 것은 주소를 가지고 있습니다.

  6. 버스와 주변장치

    주변장치 레지스터도 메모리 주소에 있습니다. AHB, APB와 메모리 맵 I/O.

  7. 스택과 힙

    함수를 부를 때마다 쌓이는 스택, 그리고 임베디드에서 힙을 조심하는 이유.

  8. 인터럽트와 예외

    하던 일을 멈추고, 상태를 저장하고, 처리 루틴으로 뛰었다가 돌아오는 과정.

    GROUND EMBEDDED · 실험실인터럽트 하던 일을멈추고 다녀오기 1volatile uint32_t *ODR 2 = (uint32_t*)0x40020014; 3*ODR |= (1u << 5); 4while (1) { 5 if (flag) toggle(); 6}3D 실험실
  9. DMA

    CPU를 거치지 않고 메모리와 주변장치 사이에서 데이터를 옮기는 장치.

  10. ARM Cortex-M 개요

    M0, M3, M4, M7의 차이와 STM32 같은 MCU 제품군이 구성되는 방식.

확인 과제

함수 호출 한 번을 스택 그림으로 그리기

인자가 둘인 함수를 부를 때 레지스터와 스택이 어떻게 변하는지 단계별로 그립니다.

세 가지에 모두 체크할 수 있으면 다음 과목으로 넘어가도 됩니다. 체크는 이 브라우저에만 저장됩니다.