This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2340R5:内部闪存数据读取/写入、自动代码复位、在 NVS 闪存位置采集数据。

Guru**** 2766275 points

Other Parts Discussed in Thread: CC2340R5, SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1602437/cc2340r5-internal-flash-data-read-write-code-reset-automatically-garbeg-data-in-nvs-flash-location

器件型号: CC2340R5
主题: SysConfig 中讨论的其他器件

变为 0  内部闪存 (NVS) 读取/写入逻辑  我在现有的 BLE 应用中观察到  垃圾/意外值  从闪存读回数据时。
如果删除用于 BQ7695202 通信的 I2C 任务逻辑、则闪存读取/写入逻辑会正常工作。 但是、当在 FreeRTOS 下同时启用闪存逻辑和 I2C 任务时、在从闪存读取时会观察到垃圾/意外数据。
 我已经附上了一个  和存储器视图、  视图中的内存分配和.map 文件中的内存配置   供参考。
申请您的紧急支持:
  • 的正确和安全使用  内部闪存/NVS  BLE + FreeRTOS
  • 推荐  闪存存储器布局  连接 CC2340R5
  • 不限  参考示例  或已知问题导致无效数据读取
请指导我调试和解决此问题。
Screenshot_img_2.jpgScreenshot_img_1.jpg
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Sandeep、

    请提供您正在处理的 SimpleLink F3 SDK 版本。  请注意、由于您在使用 BLE5-Stack NVS 实例、客户必须遵守特定的 NV 项目空间、以免与 BLE NV 项目冲突。  本文档还列出了需要注意的其他限制。

    如果您不喜欢遵守 BLE5-Stack NVS 实例的规则、可以在 SysConfig 中添加第二个 NVS 区域 、您可以通过 NVS TI 驱动程序直接访问和控制该区域。  但是、您还需要在命令链接器文件 (cc2340_freertos.cmd) 中考虑该额外空间。

    如果 I2C 任务逻辑和 NVS 读取/写入逻辑继续冲突、则可以考虑将 NVS 函数放入 关键部分、实际上这是禁用 HWI/SWI以避免中断、并在操作完成后恢复它们。  

    如果所有这些都不起作用、最好使用代码片段详细了解 NVS 实现。

    此致、
    Ryan