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.

[参考译文] CC1312R:闪存写入/NVSCC26XX 驱动程序相关问题

Guru**** 2544370 points


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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1079290/cc1312r-flash-write-nvscc26xx-driver-related-questions

部件号:CC1312R

您好,

根据 TRM 文档:
“闪存被组织为一组8 KB 的块,可以单独擦除。 可以对单独的64位字进行编程,将位从1更改为0。 ... 一行由2048位(或256字节)组成。 闪存被均匀地划分为物理行。”

1.这是否意味着以紧急方式写入闪存的数据至少应为64位(8字节)? 我看到 NVS 驱动程序将大小小于8字节的数据传递给 FlashProgram()函数,但我不清楚内部发生了什么。

2.数据是否应该与闪存行的开头对齐(例如偏移值不是3)?

3.数据应该与闪存行的末尾对齐(不能在两页上书写单词,比如在一页上书写一个单词,而在另一页上书写另一个单词),还是 FlashProgram()函数可以处理这一问题?

此致,

迪米特尔·德维兹希耶夫

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

    你好,Dimitar

    请允许我花一些时间来研究这一点。 负责该司机的研发团队位于达拉斯,因此我将尽力联系他们寻求帮助。

    巴西

    西里

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

    你好,Dimitar

    TRM 试图指出,一个操作(在 HW 中)最多可以写入64位。

    ROM 代码和闪存 IP HW 可以写入最少1个字节,用户可以指定要编程的字节数,闪存 API 可以确保在 HW 中执行所需的写入操作数。

    请注意,在必须擦除包含该行的闪存扇区之前,可以写入闪存行的次数有限制。 数据表中给出了扇区擦除前每行的最大写入操作数。

    不需要从应用端对齐。

    巴西

    西里

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

    你好,Siri,

    假设我要在 NVS 区域的偏移7处写入16位(两个字节)变量(第8行的字节,前64位的最后一个字节)。 我是否应该将他们的写入计算为对行的两次写入?

    此致

    迪米特尔·德维兹希耶夫

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

    你好,Dimitar

    我再次不得不咨询研发部门,他们的回答如下:

    当客户使用 NVS API 时,客户只提供闪存起始地址和要编程的字节数。 在 ROM Flash API 内部,ROM Flash API 将确定需要多少闪存写入。

    例如,对于写入闪存的2字节,有两种可能性。

    1. 如果加亮地址+ len (字节数)为单行, 则只需要写一个快擦写。
    2. 如果起始地址+ len (字节数)跨越行边界(您的示例),ROM Flash API 将使用两个写入。 一个写入值是1字节。 第二个写入将在下一行显示1个字节。  

    另一个例子是,如果客户想要写入20字节以进行闪存,下面是闪存写入的可能性(内部闪存 API)的数量。 这取决于闪存启动地址。

    1. 8字节+8字节+4字节 è 3个闪存写入(内部)
    2. 4字节+8字节+8字节 è 3个闪存写入(内部)
    3. 2字节+8字节+8字节+2字节 è 4个闪存写入(内部)

    无论如何,如果客户使用 NVS 闪存 API,则调用一个 NVS 闪存写入 API,内部 ROM 闪存 API 将分解为多个闪存写入操作。

    希望这能回答您的问题。

    巴西

    西里

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

    你好,Siri,

    谢谢,这是我问题的答案,但我还有另一个答案(可能更简单):

    在启动 RTOS (BIOS_START()之前)之前,是否可以使用 NVSCC26XX 驱动程序?

    此致,

    迪米特尔·德维兹希耶夫   

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

    你好,Dimitar

    我现在要离开度假,所以请您在新的主题中发布最后一个问题,该问题将分配给我团队中的其他人,由他们跟进。

    巴西

    西里

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

    好的