전자/임베디드 시스템
STM32 벡터 테이블 구조
Begi
2022. 4. 11. 21:12
반응형
STM32 중 M3 코어를 사용하는 MCU의 벡터 테이블은 다음과 같다.
주소 0x0000에는 초기 스택 포인터값이 저장된다. MCU가 리셋되면 이 주소를 스택 포인터 값으로 사용한다.
주소 0x0004에는 Reset_Hanlder 함수의 주소가 저장된다. MCU가 리셋되면 Reset_Hanlder 함수가 가장 먼저 실행된다.
컴파일러 초기 설정을 바꾸지 않았다면 Initial SP Value 주소는 Flash 메모리 시작 위치인 0x08000000이고 Reset 주소는 0x08000004이다.
STM32CubeIDE에서는 "startup_stm32***.s" 파일에 다음과 같이 벡터 테이블이 정의되어 있다.
위 코드에서 Initial SP value의 값은 _estack이다. _estack은 STM32***_FLASH.ld 파일에 다음과 같이 정의되어 있다. _estack은 (RAM 최상위 주소+1)이다.
Reset_Handler 함수는 startup_stm32***.s 파일에 정의되어 있다.
반응형