请教关于STM32L051做bootloader时如何设置SCB->VTOR

2019-07-14 15:58发布

之前了解到M0不支持通过SCB->VTOR来修改中断向量,
所以STM32L0提供了把SRAM映射到0地址的功能。
当使用bootloader功能时,把APP的中断向量复制到 0x20000000
然后由ST把0x20000000映射到0地址去。
  1.         // SYSCFG->SYSCFG_CFGR1.MEM_MODE = 11: SRAM mapped at 0x0000 0000.
  2.     memcpy((int *)0x20000000, (const int *)app_address, 256);
  3.         __HAL_RCC_SYSCFG_CLK_ENABLE();
  4.         __HAL_SYSCFG_REMAPMEMORY_SRAM();
复制代码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
ggfvxv
1楼-- · 2019-07-14 18:19
中断向量表由硬件决定,单纯的进行数据拷贝肯定是没有效果。 既然重定向了中断向量表而且依你所说 APP中断正常了,至少说明你是用的那个片子支持中断向量重定向。
uvysdfydad
2楼-- · 2019-07-14 22:05
从arm.com下载 “Cortex™-M0 Devices Generic User Guide”
而 “Cortex™-M0+ Devices Generic User Guide”中有写可选VTOR,所以看来STM32L0是可以有VTOR的。
adcmvp
3楼-- · 2019-07-15 01:52
 精彩回答 2  元偷偷看……
ZQW发烧友
4楼-- · 2019-07-15 04:55
多谢经验分享。
lee_st
5楼-- · 2019-07-15 09:48
学习

一周热门 更多>