论坛元老
 
- 积分
- 3752
- 金钱
- 3752
- 注册时间
- 2011-5-23
- 在线时间
- 2018 小时
|
10金钱
之前了解到M0不支持通过SCB->VTOR来修改中断向量,
所以STM32L0提供了把SRAM映射到0地址的功能。
当使用bootloader功能时,把APP的中断向量复制到 0x20000000然后执行
- // 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的中断就正常了。
请问这是什么情况?
|
|