프로그램의 시작은 RAM의 스택 포인터 위치를 나타내고, 2번째는 RESET HANDLER의 위치를 나타내고 있어서 부트로더가 APP 위치로 점프할 때 아래처럼 확인하게 되는데 RAM의 크기에 따라 달라질 수 있습니다.(많은 컴파일러들이 일반 레지스터는 앞에서 뒤로, STACK과 HEAP의 위치를 뒤에서 앞으로 저장하는 구조를 많이 사용하다 보니 크기가 다를 수 있습니다. - 어셈으로 직접 지정해서 사용하거나 직접 사이즈나 위치, 사용하는 방법을 지정 경우는 제외)
-> 스택 포인터가 제대로 설정되었는지 확인하는 부분
if (((*(__IO uint32_t*)APPLICATION_ADDRESS) & 0x2FFE0000 ) == 0x20000000)
'초보의 아웅다웅 설계하기 > STM32' 카테고리의 다른 글
[STM32L031]FLASH 라이팅 문제 (0) | 2024.12.20 |
---|---|
CRC 8-MAXIM, 16-ARC (0) | 2024.11.21 |
[STM32L031] RNG 없음 (0) | 2024.09.27 |
[STM32]H5xx 핀 정의 (0) | 2024.09.05 |
[STM32]네오픽셀 W2812 (0) | 2024.09.05 |