英飞凌
直播中

carey123

10年用户 1509经验值
擅长:可编程逻辑 嵌入式技术
私信 关注

请问如何分割PSoC4的闪存擦除和写入活动?

专家您好,我是该工作单的最终用户,但我不能直接回复,因为它已被关闭。 https://community.infineon.com/t5/PSoC-4/Flash-write-API/td-p/143185
无论如何,我想找到更多的信息,也许 FAE 没有完全理解我的问题。

目前,我们使用 PSoC4 实现基于 LIN 的 FBL,需要先擦除整个 APP 存储区,然后在数据传输过程中写入数据。  但在快速启动后,我们发现 MCAL libaray 官方接口只能通过"ROW" 擦除和写入数据。 必须先擦除,然后再写那一行。 每一行的总时间约为 20 毫秒。 这是不能接受的。  
那么,是否有任何解决方案可以让我们直接调用"寄存器" 来实现分割擦除和写入?

回帖(1)

醉清歌

2024-7-3 16:56:03
在这种情况下,您可以尝试以下方法来提高性能:

1. **分页擦除**:PSoC4的闪存可以按页进行擦除,而不是按行。这可能会减少擦除时间。您可以查阅PSoC4的技术手册,了解如何实现分页擦除。

2. **使用DMA(直接内存访问)**:使用DMA可以提高数据传输速度,因为它允许在不占用CPU的情况下进行数据传输。您可以查阅PSoC4的参考手册,了解如何配置和使用DMA。

3. **优化写入过程**:在写入数据之前,您可以先检查目标地址的数据是否已经为所需值。如果数据已经是正确的,那么您可以跳过写入过程,从而节省时间。

4. **并行操作**:如果可能的话,您可以尝试同时进行多个擦除和写入操作。这可能需要对您的系统进行一些调整,但可能会提高整体性能。

5. **使用外部存储器**:如果您的应用需要大量的闪存操作,您可以考虑使用外部存储器(如SPI Flash)来存储数据。这可以减轻PSoC4的闪存压力,提高性能。

6. **固件优化**:检查您的固件代码,看看是否有任何可以优化的地方。例如,减少循环次数、使用更高效的算法等。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分