打印

GD32F130C8的SYSCFG寄存器配置问题

[复制链接]
931|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
这两天基于兆易GD32F130C8自己做了个bootloader,需要修改SYSCFG寄存器中的BOOT_MODE位,将启动源修改为SRAM,但是发现修改不了。外设时钟已经开启,SYSCFG寄存器中的其他位是可以正常修改的,就是BOOT_MODE这个位修改不了,麻烦哪位技术大神指点一下,谢谢。用Keil5仿真也可以看到只有BOOT_MODE这一位是灰色的状态,是不是GD32F130C8这款单片机官方没有把对BOOT_MODE的修改开放出来?

无标题.png (20.9 KB )

无标题.png

使用特权

评论回复
沙发
liangzaixl|  楼主 | 2020-10-16 17:11 | 只看该作者
看了手册,BOOT_MODE这一位是只读,无法修改的,上电复位的时候它的状态就已经定死了。那么我想重新映射中断向量表,该如何映射呢?

使用特权

评论回复
板凳
sonicll| | 2020-10-16 17:36 | 只看该作者
这里的BOOT_MODE是只读的,反映当前的boot配置,真正的boot1在选项字节里配置,参考FMC那章的选项字节编程说明,需要注意选项字节配置后,需要系统复位才能生效

使用特权

评论回复
地板
sonicll| | 2020-10-16 17:42 | 只看该作者
重映射中断向量表需要配置内核的SCB->VTOR寄存器,跟芯片的boot模式没有必然联系,你即使从flash启动,也可以把中断向量表放在RAM里

使用特权

评论回复
5
liangzaixl|  楼主 | 2020-10-16 17:43 | 只看该作者
sonicll 发表于 2020-10-16 17:36
这里的BOOT_MODE是只读的,反映当前的boot配置,真正的boot1在选项字节里配置,参考FMC那章的选项字节编程 ...

对的。它这个位的处理跟ST的不一样,ST的是可读写的。我是从ST转到GD的,因为要从bootloader跳转到应用程序,所以需要把应用程序的中断向量表重新映射到SRAM中。ST的可以直接通过修改那一位来实现,GD的就不行,还没找到GD哪里可以实现中断向量表的重映射。

使用特权

评论回复
6
liangzaixl|  楼主 | 2020-10-16 17:45 | 只看该作者
sonicll 发表于 2020-10-16 17:42
重映射中断向量表需要配置内核的SCB->VTOR寄存器,跟芯片的boot模式没有必然联系,你即使从flash启动,也可 ...

好的,我看下,非常感谢!

使用特权

评论回复
7
liangzaixl|  楼主 | 2020-10-16 18:18 | 只看该作者
sonicll 发表于 2020-10-16 17:42
重映射中断向量表需要配置内核的SCB->VTOR寄存器,跟芯片的boot模式没有必然联系,你即使从flash启动,也可 ...

我直接调用nvic_vector_table_set函数修改SCB->VTOR寄存器就可以了,问题解决,非常感谢!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

21

帖子

0

粉丝