NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0xF000);
rt_hw_context_switch_to((rt_uint32_t)&to_thread->sp);
SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */
#define VECT_TAB_OFFSET 0xF000 /*!< Vector Table base offset field.
#define SCB_VTOR_TBLOFF ((uint32_t)0x1FFFFF80) /*!< Vector table base offset field */
你那个NVIC_SetVectorTable放在
startup.c
rtthread_startup()里面的rt_hw_board_init()里面的NVIC_Configuration()那个地方就OK啦。
你说的那个东西我也做过。应该是没有问题的。如果有问题的话。那你就是那个烧写的地址不对
void NVIC_Configuration(void)
{
#ifdef VECT_TAB_RAM
/* Set the Vector Table base location at 0x20000000 */
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else /* VECT_TAB_FLASH */
/* Set the Vector Table base location at 0x08000000 */
// NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0xF000);
#endif
}