MCU

[MCU] Startup 코드란?

_minit 2024. 12. 11. 15:02

Startup Code는 글자 그대로 MCU의 시작을 의미한다. MCU의 전원을 켰을 때(Power-On Reset) 시작되는 / 실행되는 코드라는 것이다. 하드웨어와 소프트웨어 환경을 초기화하여 애플리케이션 코드가 실행될 준비를 한다. 이 코드는 시스템 운영의 기초가 되며, 주로 어셈블리 언어 또는 저수준 C 코드로 작성된다.

 

Startup Code의 일반적인 동작 순서

  1. 벡터 섹션 정의
  2. 모든 인터럽트 비활성화
  3. 초기화된 데이터를 ROM에서 RAM으로 복사
  4. 초기화되지 않은 데이터 영역을 0으로 설정
  5. 스택 공간 할당 및 초기화
  6. 프로세서의 스택 포인터 초기화
  7. 힙 공간 생성 및 초기화
  8. 인터럽트 활성화
  9. main 함수 호출

이 외에도 실행될 수 있는 몇 가지 명령어를 포함할 수 있고, 이는 main 함수가 종료되는 경우에만 실행된다.

 

Bootloader와의 차이점:

  • Bootloader는 펌웨어 업데이트 및 시스템 설정 관리를 포함할 수 있는 초기화 프로그램이며, Startup Code는 하드웨어 초기화와 main 함수 실행 준비에 초점.
  • Bootloader는 특정 상황에서 선택적으로 사용되지만 Startup Code는 모든 MCU 프로젝트에서 기본적으로 필요.

 

간단하게 요약하자면 Startup Code는 main() 함수가 실행될 준비를 하는 간단한 어셈블리 코드 블록이다

728x90

'MCU' 카테고리의 다른 글

FreeRTOS ARM-M0 직접 포팅  (1) 2024.12.19