LittleFS文件系统,NOR Flash的文件写入问题

我将LFS文件系统配置为SPI时钟速度为100 Mhz,当尝试连续写入64字节的结构值时,在8到9个结构数据之后,我的NOR闪存设备使我忙碌并允许写入。 SPI数据传输不间断地进行。

因此,我更改了每次写入,打开和关闭文件的设计,在这种情况下,在某些情况下,关闭文件花费了我太多的时间。要写入我的全部数据(2560字节),我需要27秒的时间,这是不可接受的。

// LFS Configuration
cfg.read_size = 256;
cfg.prog_size = 256;
cfg.block_size = 4096;
cfg.block_count = 4095;
cfg.lookahead_size = 256;
cfg.cache_size = 512;

void fileWriteSM(const char* filename) {
    volatile uint32_t pos;
    for(int i=0; i<TOTAL_LINE ;i++){
        pos = lfs_file_write(&lfs,&fileInit,&syringeLib[i],sizeof(syringeLib[i]));
    }
}

void Logging_Task::run() // Function Definition
{
    res = lfs_file_opencfg(&lfs,filenameInit,LFS_O_WRONLY | LFS_O_CREAT | LFS_O_APPEND,&bufconfInit);
    fileWriteSM("filenameInit");
    lfs_file_close(&lfs,&fileInit);
    while(1);
}

// Changed Design,it takes 27 Sec 
void fileWriteSM() {
    volatile uint32_t pos;
    for(int i=0; i<TOTAL_LINE ;i++){
        pos = lfs_file_opencfg(&lfs,&bufconfInit);
        pos = lfs_file_write(&lfs,sizeof(syringeLib[i]));
        lfs_file_close(&lfs,&fileInit);
    }
}
heroliyimin 回答:LittleFS文件系统,NOR Flash的文件写入问题

我在SPI驱动程序中添加了一些延迟。问题已解决。在收到nor芯片的响应之前,尝试发送下一条命令时出现了此类问题。

本文链接:https://www.f2er.com/3144554.html

大家都在问