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

    文章

    1633

    浏览量

    147935
  • 音频
    +关注

    关注

    29

    文章

    2868

    浏览量

    81490
  • 指令
    +关注

    关注

    1

    文章

    607

    浏览量

    35692
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    何在TMS320DM643x器件使用EDMA3驱动程序

    电子发烧友网站提供《如何在TMS320DM643x器件使用EDMA3驱动程序.pdf》资料免费下载
    发表于 10-15 09:41 0次下载
    如<b class='flag-5'>何在</b>TMS320DM643x器件<b class='flag-5'>上</b>使用EDMA3驱动程序

    何在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

    MCXN947系列高性能微控制器产品介绍

    基于Arm® Cortex®-M33的双核边缘人工智能新品MCXN947系列,搭配功能强大且完全开源的AWTK GUI框架,可轻松令产品方案实现成本与性能的完美平衡。
    的头像 发表于 08-06 16:14 1143次阅读
    MCXN947系列高性能微控制器<b class='flag-5'>产品</b>介绍

    何在PSOC Creator启用BLE 5.0?

    我正在设计的电路中有一个 CYBLE-416045-02,但我不知道如何在 PSOC Creator 启用 BLE 5.0。 我在 GAP 设置中也没有看到 \"扩展广告 \"选项。 怎样才能做到这一点?
    发表于 07-24 08:06

    何在Micro SD卡设置写保护?

    我们了解客户对Micro SD卡写保护的疑问。在这篇文章中,拓优星辰将详细解释如何在Micro SD卡设置写保护,以及相关的步骤和注意事项。
    的头像 发表于 07-11 16:37 1732次阅读
    如<b class='flag-5'>何在</b>Micro SD卡<b class='flag-5'>上</b>设置写保护?

    何在ADXL355禁用LPF?

    何在ADXL355禁用 LPF
    发表于 06-04 06:00

    全开源高精度功率计,你的电力监控小助手!| VA Meter

    NEWVAMeterVAMeter是一款基于M5StampS3模块的高精度功率计,专注于电压与电流测量。其软硬件全开源,为用户提供了极大的灵活性和可定制性。内置两路串联的INA226电流电压测量电路
    的头像 发表于 06-01 08:29 779次阅读
    <b class='flag-5'>全开源</b>高精度功率计,你的电力监控小助手!| VA Meter

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

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

    何在测试中使用ChatGPT

    Dimitar Panayotov 在 2023 年 QA Challenge Accepted 大会 分享了他如何在测试中使用 ChatGPT。
    的头像 发表于 02-20 13:57 744次阅读

    求助,如何在TC399使用FOC?

    我想问一个关于如何在 TC399 使用 FOC 的问题? 谢谢你的回答!
    发表于 01-30 08:30

    何在VDAC使用外部频闪功能?

    何在 VDAC 使用外部频闪功能? 它使用上升边缘吗? 我看不到具体说明。
    发表于 01-30 08:12

    何在KW45-EVK使用RTC

    电子发烧友网站提供《如何在KW45-EVK使用RTC.pdf》资料免费下载
    发表于 01-03 09:41 0次下载
    如<b class='flag-5'>何在</b>KW45-EVK<b class='flag-5'>上</b>使用RTC