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-Q1:如何启用闪存保护

Guru**** 2589300 points
Other Parts Discussed in Thread: UNIFLASH, CC2340R5, CC2340R5-Q1, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1367263/cc2340r5-q1-how-to-enable-flash-memory-protection

器件型号:CC2340R5-Q1
主题中讨论的其他器件:UNIFLASHCC2340R5SysConfig

工具与软件:

您好、TI

如何启用闪存存储器保护?

我的 工厂 数据闪存区域的范围是0x7F000至0x80000。此区域不允许擦除。

首先,我通过 NVS_WRITE ()将出厂数据写入上述区域。

然后、我注释掉了与操作 NVS 相关的代码、并 重新刷写了代码。  即使在我启用闪存保护后、此区域仍恢复为0xFF。

我的闪存保护设置如下图所示:

我能不能问、是否存在导致扇区不被保留的错误配置? 我的理解是、通过将 Erase/retain、Main Sectors 32-255选项中的数据更改为1、这个扇区将受到保护。

此致

普雷斯顿

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

    您好 Preston:

    我目前正在研究您的问题、并将在星期三提供更全面的回应。 同时、 有关闪存保持特性的更多信息、请参阅 CC23xx 技术参考手册的第8.3.2.3.1和8.2.4.2节。

    此外、在将来请避免针对同一问题创建单独的 E2E 主题。  

    谢谢。  

    艾萨克

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

    您好、 

    此外,将来请不要为同一问题创建单独的 E2E 线程。  [/报价]

    下次我会处理这个问题。

    从阅读 TRM 一节的角度来看、我认为 uniflash 使用 SACI 命令来处理映像更新。

    我有一个问题需要您澄清。

    当我使用 Uniflash 更新映像时、选择"Chip Erase (retain Sectors Specified in CCFG)"选项会导致加载失败。

    首次选择"芯片擦除"后更新成功、第二次选择"芯片擦除"(在 CCFG 中指定保留扇区)后更新失败。

    这样做的原因是什么?

    如果要保留指定扇区、是否必须选择"芯片擦除(保留 CCFG 中指定的扇区)"? 选择"Chip Erase"是否会导致闪存保护设置失败? 从括号的内容来看似乎是这样。

    请帮助我理解这两个问题。

    此致

    普雷斯顿

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

    您好 Preston:  

    很抱歉耽误你的时间。 我正在等待一个个人对这个问题的回应、不幸的是、他目前生病了。 我希望在本周结束之前有一个回复、但会随时向您通报最新情况。  

    与此同时、您正在使用哪个 SDK 和 uniflash 版本、您使用的 NVSInternal 示例工程是正确的?  

    谢谢。  

    艾萨克

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

    您好、 

    您使用的 SDK 和 uniflash 版本是什么

    SDK:simplelink_lowpower_f3_sdk_7_40_00_64

    uniflash:8.4.0.4458

    且您使用的 NVSInternal 示例项目是否正确?  [/报价]

    是的、我正在通过 NVS 内部示例项目进行 NVS 写入。

    此致

    普雷斯顿

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

    您好 Preston:  

    第一个建议是将 Uniflash 更新到8.6版。  

    请使用我提供的项目测试您的设置。 当 Uniflash 中的 CCFG 保护功能处于开启状态时、我能够更改 NVSInternal 以保留0x7F000-0x80000。 在代码中、我将主要扇区32-255设置为0x0800 0000、将器件刷写至存储器、读取存储器以验证存储器是否被写入、使用相同的程序但不使用 WRITE 命令重新刷写器件、并且已打开  芯片擦除(保留 CCFG 中指定的扇区)。  这样便保留了闪存。  

    e2e.ti.com/.../NVSInternal_5F00_RetainFlashSectors.zip

    请在 Uniflash 8.6上测试我的项目以及您的项目。  

    如果有任何问题无法解决、或者您有任何其他问题、请告诉我!

    谢谢。  
    艾萨克  

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

    您好、 

    我使用了 您提供的项目进行测试。 然后、我遇到了一些问题。

    1.选择时 芯片擦除(CCFG 中指定的保留扇区) 我无法重新闪存它。

    如果我更改为在所有其他条件不变的情况下选择"芯片擦除"、则可以成功重新闪存。

    2. 我也尝试使用 J-link 重新刷写,通过该工具,它不能写入或擦除0x7F000-0x80000,但0x7F000-0x80000的内容仍然是 0xFF。 这样做的原因是什么? 如果我要启用闪存保护、可以使用 J-link 吗?  

    请帮我回答这两个问题、谢谢。

    此致

    普雷斯顿

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

    您好、 

    添加一些信息、我已更新 Uniflash 和 SDK。

    uniflash:8.6.0.4688

    SDK:8.10.00.55

    此致

    普雷斯顿

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

    您好 Preston:  

    您是否可以尝试使用 CCS 进行刷写、然后读取 Uniflash 上的存储器?  

    此外、您是否可以尝试使用不同的 CC2340R5板和/或不同的 XDS110?  

    我将随附适用于 SDK 8.10.00.55的更新工程、具有有效的闪存保留。  

    e2e.ti.com/.../NVSInternal_5F00_RetainFlashSectors2.zip

    再次,请先用 NVS_WRITE ()函数写入所需地址来测试这个程序。 然后注释掉 NVS_WRITE ()函数、并使用  芯片擦除(CCFG 中指定的保留扇区) 。 或者、您可以使用以下方法通过 CCS 重新刷写器件:  芯片擦除(CCFG 中指定的保留扇区) ,转到  运行 ->  调试配置  -> 目标  -> 闪存设置  ->选择 芯片擦除(CCFG 中指定的保留扇区) 。  

    如果可以、请告诉我、或者您有其他问题、请告诉我!  

    谢谢。

    艾萨克

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

    您好、 

    我会尝试使用 CCS 和 Uniflash 重新刷写、并尝试使用多个电路板。

    此外、您能否帮助我解决第二个问题(使用 Jlink 进行更新)? 这将涉及我们的生产流程(使用什么软件进行重新闪存)。

    此致

    普雷斯顿

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

    您好 Preston:  

    请告诉我该项目是否有效!  

    此外、请在尝试刷写过程之前检查是否完成 Uniflash 上的芯片擦除。

    我相信 J-Link 也可以实现闪存保护、但目前我正在等待验证。

    请告诉我所提供的芯片擦除或工程是否有效!  

    谢谢。  

    艾萨克  

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

    您好、 

    我们有两个型号的 CC2340 (CC2340R5和 CC2340R5 Q1)、然后进行了相关验证

    CC2340R5(演示板):

    Re 闪存可实现正常的闪存保护

    采用 Uniflash 的 Re 闪存可实现正常的闪存保护

    使用 J-link 重新刷新后闪存保护失败(使用 J-Flash V7.92o、取消选择0x7F000-0x7FFFF、取消选择意味着 J-link 不会擦除未选区域)

    CC2340R5-Q1(自开发板):

    Re 闪存可实现正常的闪存保护

    2.不能通过选择 芯片擦除(CCFG 中指定的保留扇区)

    使用 J-link 重新刷新后出现闪存保护故障

    使用 Uniflash 重新刷写存储器时、CC2340R5和 CC2340R5-Q1之间是否有任何差异?

    此致

    普雷斯顿

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

    您好 Preston:  

    很高兴听到演示正在为 CC2340R5的 uniflash 运行!  

    对于 J-Link、我仍在等待有关闪存保留特性的信息。 我假设您在将 IAR 与 J-Link 调试器一起使用? 如果是、可以在 IAR 中使用闪存保留。 我将在星期三为您提供更多信息。  

    对于 CC2340R5-Q1、在刷写时是否看到与之前的 Uniflash 闪存错误相同的错误? 您是否已将引脚配置从 CC2340R5切换到 CC2340R5-Q1? 为此、请导航至 SysConfig ->  显示设备视图  ->  switch  ->  电路板、新值  ->  选择 CC2340R5 Q1开发 。  

    请更改此设置、然后重新尝试刷新。 此外、尝试刷写 CCS 和 Uniflash 进行测试、我观察到这两种方法都适用于 CC2340R5-Q1。  

    谢谢。  
    艾萨克

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

    您好、 

    更改引脚配置后仍然无法重新刷写 Uniflash。

    我可以问您重新刷入了哪个文件扩展名吗? 我尝试过 输出 .hex (ASCII 十六进制) .bin

    另外、由于这是一款 自行开发的板、因此我们使用 DuPont 导线将 TCK、TMS 和 GND 连接到 XDS110。 这是否满足硬件重新闪存条件?

    此致

    普雷斯顿

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

    您好 Preston:  

    我正在使用.out 文件在 Uniflash 上进行刷写。  

    是从外部还是通过 XDS110为电路板供电? 所需的最低连接包括 SWDIO (TMS)、SWDCK (TCK)、GND 和3.3V。 如果电路板由外部供电、则不需要 XDS-110的3.3V 电压。 有关更多信息、请参阅  用户指南的 SimpleLink 低功耗 F3 SDK 简介部分。  

    此外、J-Link 调试器不支持闪存保护。  

    您是否尝试使用 CCS 重新刷写器件? 这可能是定制硬件的问题吗?  

    请告诉我!  

    谢谢。  

    艾萨克

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

    您好、 

    我正在使用外部电源、XDS-110的连接是 SWDIO (TMS)、SWDCK (TCK)和 GND。 可以使用 CCS 正确地重新闪存、并且闪存保护工作正常。

    使用 CCS 和 Uniflash 之间有何区别? CRC 校验和是否可能出现问题? 我也会让硬件将其签出。

    此外、您能告诉我为什么 Jlink 调试器不支持它吗? 谢谢!

    此致

    普雷斯顿

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

    您好、 

    新闻快报、我找到了重新刷新的方法、我需要按住重置按钮、单击" 加载映像 "然后放开,它就会下载!

    我怀疑它以前无法进入下载模式?

    此外、我想询问如何使用命令行重新刷新(FLASH PROTECT)、是否需要针对此问题创建另一个新的 E2E 线程?

    此致

    普雷斯顿

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

    您好 Preston:  

    很高兴听到您可以刷写电路板!  

    TI 支持使用 J-Link 调试器、但某些功能不可用。 我不确定这是不是将来会添加的内容、但我会检查一下。  

    我不知道为什么按住复位按钮可以让 Uniflash 刷写映像。 我建议对定制设计进行审查、以找出一般问题以及复位线的相关问题。 请务必告知硬件团队与 Uniflash 上的复位线路和刷写相关的行为。  

    CCS 和 Uniflash 刷写软件映像的方式没有区别。

    是的、请为新问题创建另一个 E2E 主题。  

    谢谢。  

    艾萨克