CH32V208WBU6关于NOR flash的一些疑问,工具里code flash和“用户数据DATA0"及”用户数据DATA1“的位置

你好,根据文档讲解慢速nor flash一共是512K,前480K用户可用,可运行代码,可擦写。遇到几个问题:

擦除时使用的时FLASH_ErasePage_Fast,只擦除一个page的256B,写入时使用的是FLASH_ProgramPage_Fast写入连续的数据,或者FLASH_ProgramWord只写入一个32bit的uint32_t Data。

  1. 我在对flash位置0x08077c00位置写入数据后(FLASH_ProgramWord),断电后上电再读取时,数据还是为0xff。

  2. 用WCHISPStudio烧录工具烧录后,0x08077f00位置有数据。

  3. 针对512K,请问480K后面的32K的用途是什么

  4. BLE是否会使用480K内的空间,是否这480K在ble工作时也是完全由用户自己使用?

  5. 针对工具WCHISPStudio配置页面上的codeflash和“用户数据DATA0"及”用户数据DATA1“的具体位置指的是nor flash的什么地址到什么地址。


请问是否有文档讲解CodeFlash及用户数据的划分?谢谢!image.png

0x08000000往后只有480K给用户用的   DATE0 DATE1是用户选择字里的


BLE是否工作与用户能否使用并不冲突,所有的代码包括蓝牙库,都是需要放到480K空间里的,区别是有一部分加了highcode修饰的函数,包括蓝牙库里的和应用层代码里修饰的,会在上电时由启动文件加载拷贝到128K的快速flash中。https://www.cnblogs.com/iot-fan/p/16667833.html

此图只是示意图,最后的32K慢速flash低智商并不连续(与前面的480k)image.png

后面的32k是bootloader程序用于ISP烧录? 用户不能更改,image.pngimage.png


你好,请问最后的32K 慢速flash我们可以使用吗?这32K地址是从什么到什么?


目前我们规划是使用480K,用户配置数据从480K往前,每256B作为一个存储区间,所以0x8077f00~0x807fff的256是一个存储区间,0x8077e00~0x80efff, 0x8077d00~0x807dff, 0x8077c00~0x807cff各自作为其他配置的存储区间。

实际开发时遇到的问题,如上面问题列表中提到

“1.对flash位置0x08077c00位置先擦除(FLASH_ErasePage_Fast,只擦除一个page的256B),然后写入数据后(FLASH_ProgramWord),断电后上电再读取时,0x08077c00的数据还是为0xff。

2.用WCHISPStudio烧录工具烧录后,软件上电后读取配置区域0x08077f00~0x807fff的256B位置有垃圾数据。

请问这个可能是什么问题?



32K的数据用户用不了,那是出厂的bootloader程序和一些芯片的私有配置,都是不对用户放开的。你说的480K的最后1k与最后1页(256字节)有问题可以邮箱发我你的测试代码。zdg@wch.cn


只有登录才能回复,可以选择微信账号登录