| 本帖最后由 aozima 于 2017-1-11 15:41 编辑 
 之前了解到M0不支持通过SCB->VTOR来修改中断向量,
 所以STM32L0提供了把SRAM映射到0地址的功能。
 
 当使用bootloader功能时,把APP的中断向量复制到 0x20000000
 然后由ST把0x20000000映射到0地址去。
 
         // SYSCFG->SYSCFG_CFGR1.MEM_MODE = 11: SRAM mapped at 0x0000 0000.
    memcpy((int *)0x20000000, (const int *)app_address, 256);
        __HAL_RCC_SYSCFG_CLK_ENABLE(); 
        __HAL_SYSCFG_REMAPMEMORY_SRAM();
 结果发现APP的中断还是进了bootloader中的。
 无意间发现默认的 system_stm32l0xx.c 代码有配置 VTOR寄存器
 于是
 
     SCB->VTOR = 0x20000000; /* TODO: M0竟然也有VTOR? */
 然后APP的中断就正常了。
 
 请问这是什么情况?
 
 
 
 |