본문 바로가기
임베디드 개발/STM32 (ARM Cortex-M)

STM32 ] Boot Configuration

by eteo 2023. 2. 6.

 

 

이전글에서 Reset시 프로세서는 0x0000 0000 부터 시작하는 반면 실행할 instruction이 저장된 위치는 다른 곳이기 때문에 Memory Aliasing을 사용한다고 했었다.

 

그리고 Reference Manual의 Boot configuration을 보면 더 자세한 정보를 찾을 수 있다.

 

Boot mode selection을 위해 BOOT1, BOOT0의 두가지 핀이 존재하고 reset시 해당핀들의 logic에 따라 boot mode가 달라진다.

 

  • BOOT1은 don't care, BOOT0이 0일 때 Boot mode는 Main Flash memory 모드가 된다. 즉 0x0000 0000 번지가 main flash의 base address로 aliased 된다는 의미이다.
  • BOOT1은 0이고, BOOT0은 1일 때, Boot mode는 System memory가 된다. 즉 0x0000 0000 번지가 system memory로 aliased 된다.
  • BOOT1은 1이고, BOOT1은 1일 때, Boot mode는 Embedded SRAM이 된다. 즉 0x0000 0000 번지가 SRAM1 0x2000 0000 번지로 aliased 된다.

 

 

 

 

ST사 외한 다른 제조사의 MCU들도 Reset시 GPIO시그널을 사용해 Memory Aliasing 하여 여러가지 Boot mode를 둔다. 이를 확인하려면 보드의 메모리 맵과, 레퍼런스 매뉴얼을 확인하면 된다.