你好,
我们正在考虑BLE应用程序的DA14680,但是,我们希望随之带来几个时间敏感的行动。对闪存管理的一些澄清得到了很大赞赏。
1)如果删除Flash,我们仍然可以执行蓝牙操作吗?数据表指出,当闪存正在删除时,芯片必须从RAM或缓存运行,但我理解从ROM读取蓝牙读取,并且在删除闪存时应禁用该中断。有没有办法解决这些限制?
2)闪光写/擦除时间和功耗有哪些统计数据?我找不到数据表中列出的。
3)如果流程尝试在被删除时访问闪存会发生什么?
4)数据表表明,控制QSPI与flash通信的FSM需要在上电时进行初始化。它也必须在睡眠后初始化吗?初始化需要多长时间?
谢谢
关键词:
设备:
嗨mthib,
1)如果闪光被擦除,你是什么意思?68x可以在闪存或镜像模式下(直接从Sysram)运行,当时设备在镜像模式下运行时,可用的内存量非常有限,这使得高速缓存模式是优先级的。如您所能理解闪存被删除并且没有应用程序代码,实现堆栈的ROM代码无法自行运行所有,因此您必须在Flash中有一个应用程序以便BLE运作。现在,如果你想知道,如果你能够擦除一部分闪光灯并仍然有BLE操作,那么NVMS适配器会照顾这一点,还有SDK中的选项用于闪光操作当设备没有挂起任务时执行,因此在睡眠之前,将执行Flash操作(这将确保在闪光灯运行时不会丢失BLE事件的大部分)。
2)对于680上的闪光灯,所使用的零件是功能范围的,电力等同于WCSP包的681的Pro套件上使用的W25Q80EW,因此您可以检查该闪存数据表的信息。
3)如上所述,SDK提供了适配器来访问flash,所以如果一个任务擦除flash,这个源被保护,没有其他任务可以访问flash,而另一个进程正在使用该资源。
4)是的,这也是在每次唤醒后执行的,但需要的时间是16MHz时钟的几个周期,而且您也不必担心,因为SDK正在关注所有上述操作。
以上所有关于flash的问题都要知道,这些类型的操作对用户是透明的,因为SDK和免费的RTOS OS提供了适当的结构和功能,以处理flash操作。您可以查看UM-B-044-DA1468x软件平台参考。pdf,以了解SDK如何在68x SoC上运行。
由于MT_dialog
1)我正在谈论如何通过发送擦除命令擦除闪光灯,例如擦除4 kB扇区,直到擦除完成之前,整个闪存将无法访问。这通常构成45 ms到400毫秒的最大时间,在其中我们必须停止或依靠从RAM操作。有些芯片具有内存控制器,只能阻止擦除期间对闪存的特定块的访问,但我想验证我们唯一的选项是否在该擦除时间内从RAM中的缓冲区数据。我明白,SDK可用于减少需要在擦除时发生闪存的动作的可能性,但我们需要100%保证它不是这种情况。
2-5)感谢您的帮助,这些问题完全回答了我的问题。非常感谢您的快速回复!
嗨mthib,
这是正确的,你擦除闪光灯的事实将使闪光灯成为68x的闪光灯,但由于闪光灯在自动模式下运行,就在擦除的情况下,如果您想从闪存中读取(获取代码或获取代码或数据)设备将暂停擦除操作并执行读取,然后设备将继续使用擦除操作(此开关在两种情况下自动完成,闪光灯在手动或自动模式下操作,但在第二种情况下,这是通过QSPI控制器和从SDK的第一种情况下完成,在任何情况下,这对最终用户来说是透明的。此外,如上所述,SDK配备了一个机制,它一旦设备保持空闲,就会立即在闪存中执行所有操作,这是必须100%安全的Flash操作不会影响和引起任何延迟设备的功能。
由于MT_dialog
挂起擦除来读取数据的限制是什么?例如,设备是否可以挂起页擦除来读取数据,或者它必须等待页擦除完成后才能读取数据?在擦除页的中间挂起来对flash来说是相当令人印象深刻的。如果要擦除超过一个页面,我会怀疑它可以在擦除页面之间挂起,否则必须等待。如果情况不是这样,我很想知道。
再次感谢,
母亲
嗨mthib,
是的,如上所述,在擦除的情况下,设备会暂停擦除以便从闪存读取数据,读取完成后,它将继续擦除闪存,现在,如果在擦除过程中发生读操作,设备将发送挂起命令,擦除将被挂起(flash挂起和恢复擦除的时间在每个flash设备之间是不同的),一旦擦除被挂起,设备将开始执行读命令,一旦读命令结束,它将恢复擦除命令。这个特性也是flash应该支持的。数据表12.1.6 Erase Suspend/Resume解释了整个功能
由于MT_dialog