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

    文章

    1762

    浏览量

    156162
  • 驱动库
    +关注

    关注

    0

    文章

    10

    浏览量

    7378
  • SFUD
    +关注

    关注

    0

    文章

    7

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    低功耗国产SPI NAND Flash存储芯片优势解析

    在嵌入式存储领域,SPI NAND Flash正凭借其大容量与简单接口的独特组合,成为越来越多成本敏感型设计的首选方案。与传统并行NAND相比,SPI NAND Flash通过
    的头像 发表于 05-15 15:41 147次阅读

    Vibe Coding AI开发实战

    整合 Vibe Coding AI开发模式支持从前端到后端、从数据到API的栈生成。开发者只需描述整体需求,AI就能自动生成完整的系
    发表于 04-15 16:02

    JL杰理AC696N系列芯片SPI接口实战驱动Flash、LCD与RGB灯

    文章阐述了,杰理AC696N系列芯片功能:驱动Flash、LCD、RGB等。AC696N开发板支持SPI主机模式,可轻松驱动这种类型外设。
    的头像 发表于 04-01 17:49 1358次阅读
    JL杰理AC696N系列芯片<b class='flag-5'>SPI</b>接口<b class='flag-5'>实战</b>:<b class='flag-5'>驱动</b><b class='flag-5'>Flash</b>、LCD与RGB灯

    深入解析Rockchip SFC驱动SPI Flash传输流程与问题排查指南

    Controller)驱动spi-rockchip-sfc.c),用于高效管理SPI Flash的读写传输。本文基于Linux内核驱动
    的头像 发表于 02-04 07:13 974次阅读
    深入<b class='flag-5'>解析</b>Rockchip SFC<b class='flag-5'>驱动</b>:<b class='flag-5'>SPI</b> <b class='flag-5'>Flash</b>传输<b class='flag-5'>流程</b>与问题排查指南

    RK 平台 SPI 开发完全指南(驱动 + 配置 + 测试 + 优化)

          在嵌入式 Linux 开发中, SPI串行外设接口)凭借高速同步通信特性,广泛应用于传感器、存储芯片、显示模块等外设交互场景。瑞芯微( Rockchip )作为主流嵌入式芯片厂商,其
    的头像 发表于 01-30 22:35 1472次阅读
    RK 平台 <b class='flag-5'>SPI</b> <b class='flag-5'>开发</b>完全指南(<b class='flag-5'>驱动</b> + 配置 + 测试 + 优化)

    SPI NOR FlashSPI NAND Flash存储芯片的区别

    SPI NOR FlashSPI NAND Flash并非相互替代,而是互补关系。SPI NOR胜在读取速度快、使用简单、可靠性高,是代码
    的头像 发表于 01-29 16:58 1075次阅读
    <b class='flag-5'>SPI</b> NOR <b class='flag-5'>Flash</b>和<b class='flag-5'>SPI</b> NAND <b class='flag-5'>Flash</b>存储芯片的区别

    RK3506 MIPI转HDMI显示开发实战:从硬件到驱动解析

    接芯片,可完美实现信号转换。 本文将从硬件选型、驱动流程、核心机制三个维度,详细拆解RK3506平台MIPI转HDMI的开发全过程,尤其聚焦驱动
    的头像 发表于 01-06 07:09 1390次阅读
    RK3506 MIPI转HDMI显示<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>

    FSKV核心开发实战:API详解与Demo演示

    为了帮助开发者高效集成FSKV核心,本文深入解析其核心API接口,并结合完整的Demo实例进行操作演示。从基础读写到高级特性,循序渐进,确保每位开发者都能快速理解并灵活运用。 一、F
    的头像 发表于 12-12 19:06 328次阅读
    FSKV核心<b class='flag-5'>库</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b>:API详解与Demo演示

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

    GNSS功能开发涉及多环节协同,LuatOS exgnss扩展是其中的关键枢纽。本文以流程探秘形式,从硬件准备、固件烧录到代码实现,详解exgnss
    的头像 发表于 11-14 15:24 6146次阅读
    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 876次阅读
    明晚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 2125次阅读
    【直播预告】下周三晚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>

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

    在振动传感领域,Air8000-LuatOS的exvib扩展具备显著优势。本文以实战驱动,详细解析
    的头像 发表于 11-04 18:28 1300次阅读
    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>

    通用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 2021次阅读