打印
[单片机芯片]

【CH32X035评估板测评】+2 用户选择字存储使用说明及发现的问题

[复制链接]
1864|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#申请原创# #技术资源# @21ic小管家

最近测试时想使用flash存储些数据,看了下X035的存储器分配


可供用户使用的存储器有程序最大 62K 字节的程序闪存存储区(CodeFlash)和256 字节用于用户选择字存储区
由于不想占用程序闪存存储区就研究了一下用户选择字存储区,虽然描述中用户选择字存储区大小为256字节,但在详细描述中却只介绍了用户选择字信息块的8个字节,对于其他地址的信息没有任何描述。

难道用户选择字存储区只有0x1FFFF800---0x1FFFF80C地址的数据可以使用吗?
看了下官方例程,也是只进行了0x1FFFF800---0x1FFFF80C地址的数据进行读写测试

仔细研究了一下例程的函数,和用户选择字存储区相关的函数有3个

在函数库内还发现库文件修改不彻底的如下描述

通过寄存器对比发现,用户选择字内容,改写后,设备复位后会被映射到FLASH_OBR和FLASH_WPR,这两个寄存器均为只读。


并且发现一处描述不清晰的地方,


在文字描述中两个参数描述的内容不一致,不清楚改怎么用,直到看到了例程源码才大概知道是怎么回事,**原厂尽快统一描述!!!

而用户选择字存储区0x1FFFF80C之后的存储区如何使用就只能自己摸索了。于是我使用flash例程做的如下测试
前4的字的地址是0x1FFFF800---0x1FFFF80C
第五个字的地址是0x1FFFF810(buf[4])


运行结果如下

写入的测试 数据和读写的测试数据一致,说明从0x1FFFF810开始往后的地址用户可以正常使用
总结:用户选择字存储区的前4个字(16个字节)存储区是有专门用途或格式要求的(每个字节有对应的反码),而后面的240个字节就没有格式要求了,可是按自己的意愿随意使用,但每次改写前都要先把前4个字的内容保存好再一起重新写入才行。

使用特权

评论回复
评论
forgot 2023-10-30 21:50 回复TA
不错,赞一个 
沙发
tpgf| | 2023-11-7 15:14 | 只看该作者
使用这种存储方式是不是需要注意大小端的问题啊

使用特权

评论回复
板凳
木木guainv| | 2023-11-7 15:52 | 只看该作者
一般闪存之类的存储介质都是以什么单位进行操作的啊

使用特权

评论回复
地板
磨砂| | 2023-11-7 16:54 | 只看该作者
这个相关的要求是要根据具体的芯片型号来定的吗

使用特权

评论回复
5
6552918|  楼主 | 2023-11-7 17:27 | 只看该作者
磨砂 发表于 2023-11-7 16:54
这个相关的要求是要根据具体的芯片型号来定的吗

是  没款型号可能有差异

使用特权

评论回复
6
6552918|  楼主 | 2023-11-7 17:27 | 只看该作者
木木guainv 发表于 2023-11-7 15:52
一般闪存之类的存储介质都是以什么单位进行操作的啊

这个不一定,要看手册

使用特权

评论回复
7
八层楼| | 2023-11-7 19:19 | 只看该作者
不同型号的存储芯片的存储方式差别大不大呢

使用特权

评论回复
8
晓伍| | 2023-11-7 19:49 | 只看该作者
写入的地址必须是指定的吗?

使用特权

评论回复
9
xiaoqizi| | 2023-11-7 20:20 | 只看该作者
字模式和字节模式相比有什么优势呢

使用特权

评论回复
10
6552918|  楼主 | 2023-11-8 10:23 | 只看该作者
八层楼 发表于 2023-11-7 19:19
不同型号的存储芯片的存储方式差别大不大呢

不大

使用特权

评论回复
11
6552918|  楼主 | 2023-11-8 10:24 | 只看该作者
晓伍 发表于 2023-11-7 19:49
写入的地址必须是指定的吗?

是要指定地址

使用特权

评论回复
12
6552918|  楼主 | 2023-11-8 10:24 | 只看该作者
xiaoqizi 发表于 2023-11-7 20:20
字模式和字节模式相比有什么优势呢

效率上可能会有差别

使用特权

评论回复
13
chenjun89| | 2023-11-9 10:02 | 只看该作者
MCU内部FLASH适合用来存储少量不用经常更改的变量。

使用特权

评论回复
14
6552918|  楼主 | 2023-11-9 10:05 | 只看该作者
chenjun89 发表于 2023-11-9 10:02
MCU内部FLASH适合用来存储少量不用经常更改的变量。

是的,我用来存储数据的不是程序flash,是数据flash,但厂家提供的文档描述的很不清楚

使用特权

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

本版积分规则

认证:北京汇冠触摸技术有限公司/电子工程师
简介:电子工程师,嵌入式应用爱好者。

102

主题

1235

帖子

6

粉丝