Тема: Bootloader для мікроконтролера STM32F030
Добрий день!
Підкажіть будь ласка, як перенести таблицю векторів переривать при старті основної програми?
Робив bootloader для STM32F4xx, то там був регістр VTOR, а у 030 нема.
#define MAIN_PROGRAM_START_ADDRESS (uint32_t)0x08008000
void GoToApplication(void)
{
if (((*(__IO uint32_t*)MAIN_PROGRAM_START_ADDRESS) & 0x20000000 ) == 0x20000000 ||
((*(__IO uint32_t*)MAIN_PROGRAM_START_ADDRESS) & 0x10000000 ) == 0x10000000)
{
char buf[] = "--------------- Firmware is loaded ---------------\r\n";
HAL_UART_Transmit(&huart5, (uint8_t*)buf, sizeof(buf), 1000);
// DeInit
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_3);
HAL_UART_DeInit(&huart5);
/* Jump to main application */
Jump_To_Application = (pFunction) (*(__IO uint32_t*) (MAIN_PROGRAM_START_ADDRESS + 4));
__set_MSP(*(__IO uint32_t*) MAIN_PROGRAM_START_ADDRESS);
Jump_To_Application();
}
}
Основна програма запускається, але переривання не працюють.
Підкажіть будь ласка - де помилка?
Дякую.