#申请原创# #技术资源# @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个字的内容保存好再一起重新写入才行。
|
不错,赞一个