0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SFUD驱动库实战手册:串行SPI Flash开发全流程解析

青山老竹农 来源:jf_82863998 作者:jf_82863998 2025-07-29 13:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

针对嵌入式系统中SPI Flash的多样化需求,SFUD库提供了灵活且通用的解决方案。本文将从环境配置、库初始化、基本操作到高级特性,完整展示SFUD库的应用流程,并通过具体示例帮助开发者深入理解其工作原理与实战技巧。

SFUD(Serial Flash Universal Driver)是开源的串行SPI Flash通用驱动库。

旨在解决不同品牌及规格串行Flash的命令差异问题,通过统一接口实现跨硬件兼容,从而降低嵌入式系统的开发复杂度,提高软件的可重用性和可扩展性。

LuatOS为开发者提供了便捷的SFUD核心库API接口:

支持通过SFUD原生接口直接操作Flash存储单元,也支持将Flash设备挂载为SFUD LFS文件系统实现标准化文件管理,简化嵌入式存储管理并提升开发效率;

支持设置文件系统挂载的偏移量和大小,提供更灵活的配置选项,适用于物联网智能设备、工业控制等不同应用场景的需求。

本文将以Air780EHM核心板为例,分享的SFUD应用示例;此示例同样适用于Air780EHV、Air780EGH系列。

一、主要准备工作

Air780EHM核心板套件

SPI Flash模块

注:需要选用支持SFUD标准的SPI Flash模块,本文使用W25Q32演示。

Type-C USB数据线

Win10及其以上PC电脑

wKgZO2iIT4yAZGkuAAw5KTOuV5o425.pngwKgZO2iIT52AKsj9AAD8CrZJppY248.png

Air780EHM核心板通过Type-C USB数据线连接电脑;支持USB口供电,使用时请将USB旁边的开关拨到ON一端。

wKgZPGiIT9yADv1MAAxlu0KZkDk112.png

Air780EHM核心板通过杜邦线和SPI Flash模块连接,对应管脚接线方式如下图表所示:

wKgZO2iIUA2AGceZAAhWPLYrYVk561.pngwKgZPGiIUCqAZjdkAAGljKWOAvk216.png

二、最新源码下载

最新demo已上传源码仓库:https://gitee.com/openLuat/LuatOS/tree/master/module/Air780EHM_Air780EHV_Air780EGH/demo/sfud

sfud_test.lua代码如下图示,完整demo详见源码仓库。

wKgZO2iIUGOAZt24AAU7EFgwx_k940.pngwKgZPGiIUImAVEp8AAY7ai8Ooe4859.pngwKgZO2iIUKaAfvf0AAVa2ihWJKo681.pngwKgZPGiIUMGAMkswAAItLlJz4ZQ871.png

相关注意事项:

在sfud_test.lua中,通过test_sfud_raw和test_sfud_mountl两个变量来控制,是通过SFUD接口去读写Flash,还是挂载为SFUD LFS文件系统,通过文件系统相关接口去操作SFUD LFS文件系统中的文件。

也可以同时使用这两种方式,不过要注意同时使用SFUD直接写入时的地址和挂载SFUD LFS时的偏移量需要设计好(注意偏移量需要是64k的倍数),避免发生冲突。

三、示例运行结果

Air780EHM核心板通过LuaTools烧录内核固件和demo脚本代码。烧录成功后开机运行,通过LuaTools日志查看运行结果。

3.1 通过SFUD原生接口直接操作Flash:

写入字符串:luatos-sfud1234567890123456789012345678901234567890

然后读取前4字节数据。

结果如下图所示:

wKgZPGiIUQiAe5FIAAJu4fI0JGk025.png

3.2 将Flash设备挂载为SFUD LFS文件系统:

我们将Flash设备成功挂载为SFUD LFS文件系统后,通过标准化文件管理接口对文件系统进行了全流程验证。

wKgZPGiIUTGAIA4UAAJ0vwjex4Q962.png

日志输出显示,文件系统挂载过程顺利完成,且测试文件读写、内容追加、文件删除等核心操作均能稳定执行,整个交互过程无异常报错信息,充分验证了SFUD LFS文件系统在嵌入式存储场景下的功能完整性。

今天的内容就分享到这里了~

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FlaSh
    +关注

    关注

    10

    文章

    1715

    浏览量

    154664
  • 驱动库
    +关注

    关注

    0

    文章

    10

    浏览量

    7331
  • SFUD
    +关注

    关注

    0

    文章

    7

    浏览量

    1263
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    FPGA实现基于SPI协议的Flash驱动控制芯片擦除

    本篇博客具体包括SPI协议的基本原理、模式选择以及时序逻辑要求,采用FPGA(EPCE4),通过SPI通信协议,对flash(W25Q16BV)存储的固化程序进行芯片擦除操作。
    的头像 发表于 12-02 10:00 1647次阅读
    FPGA实现基于<b class='flag-5'>SPI</b>协议的<b class='flag-5'>Flash</b><b class='flag-5'>驱动</b>控制芯片擦除

    LuatOS exgnss扩展实战进阶:GNSS功能开发流程

    GNSS功能开发涉及多环节协同,LuatOS exgnss扩展是其中的关键枢纽。本文以流程探秘形式,从硬件准备、固件烧录到代码实现,详解exgnss
    的头像 发表于 11-14 15:24 5407次阅读
    LuatOS exgnss扩展<b class='flag-5'>库</b><b class='flag-5'>实战</b>进阶:GNSS功能<b class='flag-5'>开发</b><b class='flag-5'>全</b><b class='flag-5'>流程</b>!

    明晚8点|睿擎文件系统实战:从开发到发布流程解析

    开发者。为此,我们特别推出本期文件系统专题直播,由睿擎平台核心研发工程师手把手带你掌握文件系统开发流程!直播预告▎直播主题睿擎平台文件系统综合
    的头像 发表于 11-11 11:53 364次阅读
    明晚8点|睿擎文件系统<b class='flag-5'>实战</b>:从<b class='flag-5'>开发</b>到发布<b class='flag-5'>全</b><b class='flag-5'>流程</b><b class='flag-5'>解析</b>

    【直播预告】下周三晚8点|睿擎文件系统实战:从开发到发布流程解析

    开发者。为此,我们特别推出本期文件系统专题直播,由睿擎平台核心研发工程师手把手带你掌握文件系统开发流程!直播预告▎直播主题睿擎平台文件系统综合
    的头像 发表于 11-06 18:05 1668次阅读
    【直播预告】下周三晚8点|睿擎文件系统<b class='flag-5'>实战</b>:从<b class='flag-5'>开发</b>到发布<b class='flag-5'>全</b><b class='flag-5'>流程</b><b class='flag-5'>解析</b>

    物联网开发必备:四款低功耗蓝牙透传模块参数解析与应用实战

    物联网开发必备:四款低功耗蓝牙透传模块参数解析与应用实战 作为物联网设备的“无线神经末梢”,低功耗蓝牙(BLE)透传模块的选择直接关系到产品的功耗、连接稳定性与
    的头像 发表于 11-05 14:37 311次阅读

    Air8000-LuatOS exvib扩展使用流程实战驱动的操作解析

    在振动传感领域,Air8000-LuatOS的exvib扩展具备显著优势。本文以实战驱动,详细解析
    的头像 发表于 11-04 18:28 984次阅读
    Air8000-LuatOS exvib扩展<b class='flag-5'>库</b>使用<b class='flag-5'>全</b><b class='flag-5'>流程</b>:<b class='flag-5'>实战</b><b class='flag-5'>驱动</b>的操作<b class='flag-5'>解析</b>

    小红书笔记详情 API 实战指南:从开发对接、场景落地到收益挖掘(附避坑技巧)

    本文详解小红书笔记详情API的开发对接、实战场景与收益模式,涵盖注册避坑、签名生成、数据解析流程,并分享品牌营销、内容创作、SAAS工具等
    的头像 发表于 09-26 14:03 439次阅读
    小红书笔记详情 API <b class='flag-5'>实战</b>指南:从<b class='flag-5'>开发</b>对接、场景落地到收益挖掘(附避坑技巧)

    SPI开发实战:硬件电路设计与CH390H应用全攻略

    实战SPI开发指南!涵盖硬件电路设计核心技巧,结合CH390H应用案例,一站式解决SPI开发中的常见问题与难点。 本文以Air780EPM
    的头像 发表于 09-18 14:08 504次阅读
    <b class='flag-5'>SPI</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b>:硬件电路设计与CH390H应用全攻略

    通用bootloader无法使用45db161flash怎么解决?

    通用bootloader不选“支持spi flash”,download放于片内flash,正常启动,ota正常,app驱动at45db161读写正常。通用bootloader选“支持
    发表于 09-18 08:23

    RT-Thread 5.1.0版本中调用rt_sfud_flash_probe()函数报错的原因?

    使用RT-Thread Studio编译器,RT-Thread版本5.1.0 三、配置过程 1、启用SPISFUD 2、修改sfud_cfg.h文件 3、修改sfud_flash
    发表于 09-18 06:08

    SPI NOR FLASH是什么,与SPI NAND Flash的区别

    SPI NOR FLASH是什么?   SPI NOR FLASH是一种非易失性存储器,它通过串行接口进行数据传输,具有读写速度快、可靠性高
    的头像 发表于 08-21 09:26 1092次阅读

    瑞萨RA8D1 MCU的OSPI Flash适配指南

    OSPI Flash(Octal SPI Flash)是一种基于SPI串行外设接口)扩展的高速串行
    的头像 发表于 07-17 11:24 2635次阅读
    瑞萨RA8D1 MCU的OSPI <b class='flag-5'>Flash</b>适配指南

    开发进阶指南:LuatOS-log从入门到实战

    本文将带你深入探索LuatOS系统中log的核心原理与实战技巧,通过代码示例解析日志管理、错误追踪及性能优化的最佳实践,助力栈工程师构建更稳健的物联网应用。 今天,我们一起来认识L
    的头像 发表于 05-15 16:12 2670次阅读
    <b class='flag-5'>全</b>栈<b class='flag-5'>开发</b>进阶指南:LuatOS-log<b class='flag-5'>库</b>从入门到<b class='flag-5'>实战</b>!

    解锁LuatOS-log栈工程师的日志管理实战课!

    针对开发者设计的实战教程,本文聚焦LuatOS平台log的高效使用,从基础配置到高级调试策略,手把手教你搭建可扩展的日志系统,提升项目维护效率。 今天,我们一起来认识LuatOS
    的头像 发表于 05-12 15:23 1306次阅读
    解锁LuatOS-log<b class='flag-5'>库</b>:<b class='flag-5'>全</b>栈工程师的日志管理<b class='flag-5'>实战</b>课!

    锡膏使用避坑指南:50 个实战问答帮你解决 99% 的焊接难题(流程解析

    傲牛科技工程师围绕锡膏使用流程,精心梳理 50 个核心问题,涵盖存储准备、印刷工艺、焊接后处理、特殊场景应用、设备调试及材料选型六大维度,为广大客户和从业者深度解析锡膏使用中遇到的问题,每个
    的头像 发表于 04-14 09:45 1130次阅读
    锡膏使用避坑指南:50 个<b class='flag-5'>实战</b>问答帮你解决 99% 的焊接难题(<b class='flag-5'>全</b><b class='flag-5'>流程</b><b class='flag-5'>解析</b>)