打印

GD32选项字节使用

[复制链接]
1480|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
GD32芯片的选项字节有没有用户自由使用的数据字节?

使用特权

评论回复
沙发
sonicll| | 2020-6-24 11:02 | 只看该作者
看用户手册的FMC章节,有两个字节的用户自定义数据

使用特权

评论回复
板凳
qcliu| | 2020-7-6 16:37 | 只看该作者
请问什么叫选项字节

使用特权

评论回复
地板
tfqi| | 2020-7-6 16:37 | 只看该作者
这两个字节的作用是干嘛用的啊

使用特权

评论回复
5
wiba| | 2020-7-6 16:37 | 只看该作者
只有两个字节啊

使用特权

评论回复
6
zljiu| | 2020-7-6 16:38 | 只看该作者
第一次接触 呵呵

使用特权

评论回复
7
coshi| | 2020-7-6 16:38 | 只看该作者
楼主问题解决了吗

使用特权

评论回复
8
castle520| | 2020-11-4 21:41 | 只看该作者
本帖最后由 castle520 于 2020-11-4 21:46 编辑

GD32选项字节使用---以GD32F30x系列为例
参考资料:(GD官网:http://www.gd32mcu.com/)
GD32F30x_User_Manual_CN_v2.3
GD32F303xxDatasheet Rev1.5
选项字节位置:
        参考用户手册FMC章节:
选项字节说明:
选项字节地址、说明见GD32F30x_User_Manual_CN_v2.3:
代码中定义在gd32f30x_fmc.h:
格式
每一个都是16位的(2个字节),但是,每一个元素的2个字节中,高字节和低字节是互补关系。相当于只有一个字节是有效内容。实际上,操作的是偶地址的字节,奇地址的字节是其补码。

安全保护SPC(即读保护)
GD32F30x只有两种安全状态:无保护、已保护。
有些系列MCU有三种安全保护状态:无保护、低级别保护、高级别保护
GD32F1x0/GD32F3x0/GD32E23x系列的三种安全保护状态的主要区别如下:
用户字节USER
[7:4]: 保留
[3]:   BB
       0
:当配置为从主存储块启动时,若bank1有启动程序,从
         bank1启动,否则从bank0启动;
       1:当配置为从主存储块启动时,从bank0启动。
[2]:   nRST_STDBY
       0
:设置待机模式时产生复位而不是进入待机模式;
       1:设置待机模式时进入待机模式而不产生复位。
[1]:  nRST_DPSLP
       0
:设置深度睡眠模式时产生复位而不进入深度睡眠模式
       1:设置深度睡眠模式时进入深度睡眠模式而不产生复位
[0]nWDG_HW
       0
: 硬件使能独立看门狗功能
       1: 软件使能独立看门狗功能
页擦除\编程保护
FMC的页擦除/编程保护功能可以阻止对闪存的意外操作。当FMC对被保护页进行页擦除或编程操作时,操作本身无效且FMC_STAT寄存器WPERR位将被置1。如果WPERR位被置1且FMC_CTL寄存器的ERRIE位也被置1来使能相应的中断,FMC将触发闪存操作出错中断,等待CPU处理。配置可选字节块的WP[31:0]某位为0可以单独使能某几页的保护功能。如果在可选字节块执行了擦除操作,所有的闪存页擦除和编程保护功能都将失效。当可选字节的WP被改变时,需要系统复位使之生效。
选项字节读取
通过Jflash、ISP等或者其他工具直接读取flash地址即可查看选项字节状态。
选项字节擦除
file:///C:/Users/HUADON~1.WAN/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg
代码函数:ob_erase()
选项字节编程
file:///C:/Users/HUADON~1.WAN/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg
代码函数:ob_write_protection_enable()  //开写保护
          ob_security_protection_config() //开读保护
         ob_user_write()                 //用户选项字节编程
          ob_data_program()               //用户定义数据编程
使用GigaDevice MCU ISP Programmer工具操作选项字节
1. 首先把BOOT拉高,进入Bootloader模式

2. 连接到MCU后,可以选择读写保护,如下图
用户字节USER
[7:4]: 保留
[3]:   BB
       0
:当配置为从主存储块启动时,若bank1有启动程序,从
         bank1启动,否则从bank0启动;
       1:当配置为从主存储块启动时,从bank0启动。
[2]:   nRST_STDBY
       0
:设置待机模式时产生复位而不是进入待机模式;
       1:设置待机模式时进入待机模式而不产生复位。
[1]:  nRST_DPSLP
       0
:设置深度睡眠模式时产生复位而不进入深度睡眠模式
       1:设置深度睡眠模式时进入深度睡眠模式而不产生复位
[0]nWDG_HW
       0
: 硬件使能独立看门狗功能
       1: 软件使能独立看门狗功能
页擦除\编程保护
FMC的页擦除/编程保护功能可以阻止对闪存的意外操作。当FMC对被保护页进行页擦除或编程操作时,操作本身无效且FMC_STAT寄存器WPERR位将被置1。如果WPERR位被置1且FMC_CTL寄存器的ERRIE位也被置1来使能相应的中断,FMC将触发闪存操作出错中断,等待CPU处理。配置可选字节块的WP[31:0]某位为0可以单独使能某几页的保护功能。如果在可选字节块执行了擦除操作,所有的闪存页擦除和编程保护功能都将失效。当可选字节的WP被改变时,需要系统复位使之生效。
选项字节读取
通过Jflash、ISP等或者其他工具直接读取flash地址即可查看选项字节状态。
选项字节擦除
file:///C:/Users/HUADON~1.WAN/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg
代码函数:ob_erase()
选项字节编程
file:///C:/Users/HUADON~1.WAN/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg
代码函数:ob_write_protection_enable()  //开写保护
          ob_security_protection_config() //开读保护
         ob_user_write()                 //用户选项字节编程
          ob_data_program()               //用户定义数据编程
使用GigaDevice MCU ISP Programmer工具操作选项字节
1. 首先把BOOT拉高,进入Bootloader模式
2. 连接到MCU后,可以选择读写保护,如下图
3.点击如图所示可以编辑选项字节

打开后如下图即可操作选项字节

点击Applyto Device即可编辑成功


使用特权

评论回复
9
huquanz711| | 2020-11-4 22:58 | 只看该作者
什么是选项字节?

使用特权

评论回复
评论
清溪 2020-11-26 00:25 回复TA
选项字节包括芯片硬件特性的配置和存储器的保护信息,这些字节保存在存储器中一个专用的块内。以GD32F3X0为例,选项字节的地址范围是0x1FFF F800 - 0x1FFF F80F。用户可以通过对这些地址的编程,实现相应的功能,例如设置芯片的读写保护,使能电压监视器,软硬件设立看门狗定时器等,具体可参看芯片用户手册,有很详细的说明 
10
xmwolf| | 2021-1-20 20:59 | 只看该作者
Mark

使用特权

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

本版积分规则

3

主题

13

帖子

0

粉丝