Startup Code는 글자 그대로 MCU의 시작을 의미한다. MCU의 전원을 켰을 때(Power-On Reset) 시작되는 / 실행되는 코드라는 것이다. 하드웨어와 소프트웨어 환경을 초기화하여 애플리케이션 코드가 실행될 준비를 한다. 이 코드는 시스템 운영의 기초가 되며, 주로 어셈블리 언어 또는 저수준 C 코드로 작성된다.
Startup Code의 일반적인 동작 순서
- 벡터 섹션 정의
- 모든 인터럽트 비활성화
- 초기화된 데이터를 ROM에서 RAM으로 복사
- 초기화되지 않은 데이터 영역을 0으로 설정
- 스택 공간 할당 및 초기화
- 프로세서의 스택 포인터 초기화
- 힙 공간 생성 및 초기화
- 인터럽트 활성화
- main 함수 호출
이 외에도 실행될 수 있는 몇 가지 명령어를 포함할 수 있고, 이는 main 함수가 종료되는 경우에만 실행된다.
Bootloader와의 차이점:
- Bootloader는 펌웨어 업데이트 및 시스템 설정 관리를 포함할 수 있는 초기화 프로그램이며, Startup Code는 하드웨어 초기화와 main 함수 실행 준비에 초점.
- Bootloader는 특정 상황에서 선택적으로 사용되지만 Startup Code는 모든 MCU 프로젝트에서 기본적으로 필요.
간단하게 요약하자면 Startup Code는 main() 함수가 실행될 준비를 하는 간단한 어셈블리 코드 블록이다
728x90
'MCU' 카테고리의 다른 글
FreeRTOS ARM-M0 직접 포팅 (1) | 2024.12.19 |
---|