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

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

3天内不再提示

如何在产品上扩展大储存?全开源啦!

青山老竹农 ? 来源:jf_82863998 ? 2024-10-05 15:02 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

?我们都知道芯片的储存都是寸土寸金的,当你的产品需要存储照片、音频、文档等资源的时候,有没有眉头一紧?

内部不够只能外扩,但是外扩要编写各种驱动,还有Flash替换,这都要消耗头发啊!

但,当你使用合宙的LuatOS开发就全然不同了~

今天我们来介绍一下, LuatOS集成内部的一个开源SPI Flash通用驱动库 ——little_flash

它可以让你无需考虑不同Flash驱动差异,即可直接使用或者简单配置参数即可使用。无需再编写Flash驱动,真正的做到硬件随意更改Flash软件通用了。

特别说明:

本文档以Air780EP+LuatOS作为示例,但此驱动库为通用库不限制型号,所有型号都可使用,甚至你可以在你其他C开发产品上自行移植使用。

一、SPI Flash分类

SPI Flash主流一般分为:

NOR Flash和NAND Flash。

TF我们这里不算在内,严格的说它属于emmc,价格也高。

我们看下对比表:

图片?

这里就需要各位根据产品定义按需选择了。

二、实现原理

这里我们简单讲解一下实现原理,不感兴趣想直接使用的朋友,可以跳过直接看下一部分。

早期的Flash各个厂家指令不同,每家都要单独写驱动。

直到一个标准协议的出现:

SERIAL FLASH DISCOVERABLE PARAMETERS (SFDP) | JEDEC

详细介绍参见:

https://www.jedec.org/standards-documents/docs/jesd216b#

该协议规定了一个指令来读取Flash的所有参数,得益于它,目前市面上在产的NOR Flash基本都能直接驱动。

little_flash库就是支持了此协议,实现了NOR Flash的通用驱动。

接下来,我们说一下NAND Flash:

很可惜,虽然新版SFDP协议有描述NAND Flash,但是实际上大部分NAND Flash厂商都没有遵守。

市面上的NAND Flash一般是两种设计,一种是纯兼容NOR Flash指令,另一种是兼容部分NOR Flash指令,加一部分NAND Flash指令。

little_flash做了一套通用框架,只需要配置下产品几个指令和储存大小即可驱动NAND Flash,并且不支持SFDP协议的NOR Flash也可以通过配置参数方式进行支持。

**三、相关准备工作 **

图片?

3.1 硬件准备

  • 合宙Air780EP开发板一套,包括天线SIM卡;
  • SPI Flash模块
  • 杜邦线
  • USB线
  • PC电脑

3.2 软件准备

我们使用云编译方式编译一份固件,记得勾选little_flash库,其他功能按需选择。

云编译教程参考:

https://wiki.luatos.com/develop/compile/Cloud_compilation.html

图片?

四、API介绍

little_flash库API非常简单,只有两个:一个初始化,一个挂载。挂载到文件系统之后,就可以用语言的原生IO操作直接使用了。

4.1 lf.init(spi_device)

初始化little_flash,会自动探测flash并初始化。

参数:

图片?

返回值:

图片?

4.2 lf.mount(flash, mount_point, offset, maxsize)

挂载little_flash lfs文件系统。

参数:

图片?

返回值:

图片?

五、脚本代码

我们以Air780EP为例,下图是代码演示,并且做了相关注释。

图片?

六、效果演示

我们把固件和脚本烧录到开发板中,新朋友可参考相关教程。

LuatOS教程链接:

https://doc.openluat.com/wiki/26?wiki_page_id=3020

图片?

可以看到little_flash自动识别了NOR Flash,挂载成功后文件操作也都正常。

从此之后,告别SPI Flash驱动。

就算产品更换Flash,也无需修改代码,爽!
11.jpg12.jpg

?

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

    关注

    10

    文章

    1683

    浏览量

    152180
  • 音频
    +关注

    关注

    30

    文章

    3052

    浏览量

    83588
  • 指令
    +关注

    关注

    1

    文章

    617

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Genie:产品级Agent开源产品

    京东前两天发布了一个开源的Agent产品-JoyAgent-JDGenie,在GAIA榜单分数达到了75.15%,超越了众多开源的AI Agent项目。 该
    的头像 发表于 07-27 12:40 ?219次阅读
    Genie:<b class='flag-5'>产品</b>级Agent<b class='flag-5'>开源</b><b class='flag-5'>产品</b>

    何在deepin 25使用Blender 4.5.0

    设计师、动画师以及 3D 爱好者们,你是否想过在 deepin 玩转全球顶尖开源 3D 创作套件 Blender?
    的头像 发表于 07-24 16:38 ?358次阅读

    成都 9月19-20日《产品EMC正向设计与检视》公开课火热报名中!

    课程名称:《产品EMC正向设计与检视》讲师:吴老师时间地点:成都9月19-20日主办单位:赛盛技术课程背景在产品系统设计阶段,如何在结构方面考虑电磁兼容设计?在产品PCB设计阶段,哪些
    的头像 发表于 07-10 11:54 ?129次阅读
    成都 9月19-20日《<b class='flag-5'>产品</b>EMC正向设计与检视》公开课火热报名中!

    迅为RK3562开发板2900页+资料_多种系统适配全开源

    迅为RK3562开发板ARM四核A53核心板多种系统适配全开源 RK3562开发板(2GB内存+16GB存储)
    发表于 06-17 10:50

    开源分享】:开源小巧的FPGA开发板——Icepi Zero

    。程序员可以使用它在多种架构测试他们的代码。 Icepi Zero 还有一个板载 USB 到 JTAG 转换器,因此不需要外部编程器。此外,Icepi Zero 是完全开源的,没有任何附加条件。如果你想
    发表于 06-09 14:01

    拥抱开源!一起来做FPGA开发板

    的发展注入了强劲动力。紫光同创作为其中的一家,推出的Titan系列、Logos系列、Compa系列、Kosmo系列等产品,在通信、工业、图像视频处理等行业表现出色。 今天,我们怀揣着对开源的热爱与信仰
    发表于 06-06 14:05

    火力全开,ModbusTCP/RTU转ethernet ip协议网关的不同应用大揭秘

    火力全开,ModbusTCP/RTU转ethernet ip协议网关的不同应用揭秘
    的头像 发表于 05-22 10:22 ?191次阅读
    火力<b class='flag-5'>全开</b>,ModbusTCP/RTU转ethernet ip协议网关的不同应用大揭秘

    技术分享 | 如何在2k0300(LoongArch架构)处理器跑通qt开发流程

    技术分享 | 如何在2k0300开发板(LoongArch架构)处理器跑通qt开发流程
    的头像 发表于 05-20 11:05 ?327次阅读
    技术分享 | 如<b class='flag-5'>何在</b>2k0300(LoongArch架构)处理器<b class='flag-5'>上</b>跑通qt开发流程

    上海 6月20日-21日《产品EMC正向设计与检视》公开课火热报名中!

    课程名称:《产品EMC正向设计与检视》讲师:吴老师时间地点:上海6月20-21日主办单位:赛盛技术课程背景在产品系统设计阶段,如何在结构方面考虑电磁兼容设计?在产品PCB设计阶段,哪些
    的头像 发表于 05-15 15:38 ?192次阅读
    上海 6月20日-21日《<b class='flag-5'>产品</b>EMC正向设计与检视》公开课火热报名中!

    直播|Tuya AI硬件开发平台开源!搭载超强AI能力,助力个人开发者打破技术壁垒

    为了帮助个人开发者有效降低开发智能产品的门槛,涂鸦之前推出过完全开源、充分开放的开发框架---TuyaOpenFramework(点击查TuyaOpen往期完整介绍)。它基于涂鸦沉淀十年潜心研发
    的头像 发表于 04-23 18:41 ?653次阅读
    直播|Tuya AI硬件开发平台<b class='flag-5'>开源</b><b class='flag-5'>啦</b>!搭载超强AI能力,助力个人开发者打破技术壁垒

    开源的AI MPU

    1. 基于RISC-V的开源AI MPU/加速器 ? ?**(1) SiFive Intelligence系列**? ? 特点 ?:SiFive提供开源的RISC-V IP核,支持AI扩展指令集(如
    的头像 发表于 04-02 17:44 ?1690次阅读

    霍尔开关的应用有哪些?矽睿半导体霍尔开关在产品计数的智能应用

    霍尔开关在产品计数中的智能应用主要体现在提高计数精度和效率方面。霍尔开关是一种感应元件,可以感知磁场的变化,并将其转化为电信号进行处理。这种特性使其在产品计数系统中具有广泛的应用。 霍尔开关在产品
    的头像 发表于 12-20 16:48 ?557次阅读

    ADS1292R有 \"1 ch ECG + 1 ch呼吸侦测\" 或 \"2 ch ECG\" 两种模式,是否可以在产品实现自行切换两种使用模式?

    请问 ADS1292R 有 \"1 ch ECG + 1 ch 呼吸侦测\" 或 \"2 ch ECG\" 两种模式,是否可以在产品实现让用户自行切换两种使用模式?
    发表于 12-13 14:43

    何在DRA821U使用Linux实现快速引导

    电子发烧友网站提供《如何在DRA821U使用Linux实现快速引导.pdf》资料免费下载
    发表于 09-03 10:11 ?0次下载
    如<b class='flag-5'>何在</b>DRA821U<b class='flag-5'>上</b>使用Linux实现快速引导

    使用xtr111应用在产品设计中,运行一段时间过后设备不工作怎么解决?

    在使用xtr111应用在产品设计中,起初设备运行稳定,运行一段时间过后设备不工作,其它器件完好,XTR111烧毁,无法工作。如下是原理图帮忙看看有哪些地方需要改善的。谢谢。 现在也在检查坏片的每个管脚对地阻抗与正常芯片对比,确认是哪个管脚发生了问题。
    发表于 08-14 07:14