首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >LittleFS文件系统,NOR闪存的文件写入问题

LittleFS文件系统,NOR闪存的文件写入问题
EN

Stack Overflow用户
提问于 2019-11-07 21:21:12
回答 1查看 457关注 0票数 2

我将LFS文件系统配置为SPI时钟速度为100 Mhz,当尝试连续写入64字节的结构值时,在8到9个结构数据之后,我的NOR闪存设备返回给我busy和write enable。SPI数据传输无休止地连续进行。

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

代码语言:javascript
运行
复制
// 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, &fileInit, 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, &fileInit, filenameInit,
                           LFS_O_WRONLY | LFS_O_CREAT | LFS_O_APPEND, &bufconfInit);
        pos = lfs_file_write(&lfs, &fileInit, &syringeLib[i],
                         sizeof(syringeLib[i]));
        lfs_file_close(&lfs, &fileInit);
    }
}
EN

回答 1

Stack Overflow用户

发布于 2020-03-12 14:00:06

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58749649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档