STM32F0xx에는 SCB->VTOR가 존재하지 않습니다.
__IO uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */
그래서 아래의 부분이 필요합니다.
/* Relocate by software the vector table to the internal SRAM at 0x20000000 ***/
/* Copy the vector table from the Flash (mapped at the base of the application
load address 0x08003000) to the base address of the SRAM at 0x20000000. */
for(i = 0; i < 48; i++)
{
VectorTable[i] = *(__IO uint32_t*)(APPLICATION_ADDRESS + (i<<2));
}
/* Enable the SYSCFG peripheral clock*/
RCC_APB2PeriphResetCmd(RCC_APB2Periph_SYSCFG, ENABLE);
/* Remap SRAM at 0x00000000 */
SYSCFG_MemoryRemapConfig(SYSCFG_MemoryRemap_SRAM);
Flash 용량에 따라 flash_if.h의 수정이 필요합니다.
#if FLASH64KB
#define USER_FLASH_LAST_PAGE_ADDRESS 0x0800F800
#define USER_FLASH_END_ADDRESS 0x0800FFFF /* 64 KBytes */
#else //FLASH32KB
#define USER_FLASH_LAST_PAGE_ADDRESS 0x08007800
#define USER_FLASH_END_ADDRESS 0x08007FFF /* 32 KBytes */
#endif
#define FLASH_PAGE_SIZE 0x400 /* 1 Kbytes */
저는 031에 적용하였지만 다른 0xx시리즈도 크게 다를 것 같지 않습니다.
Bootloader
Application
Application은 IAP 안에 binary_template 폴더 안에 있습니다.
https://www.st.com/en/embedded-software/stsw-stm32116.html
'초보의 아웅다웅 설계하기 > STM32' 카테고리의 다른 글
[STM32]PCF8575 I/O 확장 칩 테스트 프로그램 (0) | 2023.03.15 |
---|---|
STM32F0 PF0(OSC_IN), PF1(OSC_OUT) 사용 (0) | 2023.03.14 |
STM --cpp 옵션으로 인한 에러 (0) | 2023.02.08 |
NTC(10k) 수식 (0) | 2022.07.07 |
ADC128S102, DAC128S085 (0) | 2022.05.25 |