如何在产品上扩大储存?教你一招简单好用的!

你是不是经常遇到需要扩大库存的问题?毕竟总是有很多文件需要存储:视频、音频、文件。。。

但是芯片的空间寸土寸金呀!

内部不够只能外扩,然后就是要编写各种驱动,还有Flash替换。。。怎么听着就头疼!

教你一招简单好用的!

今天我们来介绍一下,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,也无需修改代码,爽!

相关推荐
TeYiToKu8 分钟前
笔记整理—linux驱动开发部分(9)framebuffer驱动框架
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件·arm
老衲不用@飘柔26 分钟前
元器件篇——自恢复保险丝(PPTC)
硬件工程
基极向上的三极管1 小时前
【AD】3-4 在原理图中放置元件
嵌入式硬件
徐嵌1 小时前
STM32项目---水质水位检测
stm32·单片机·嵌入式硬件
徐嵌1 小时前
STM32项目---畜牧定位器
c语言·stm32·单片机·物联网·iot
lantiandianzi2 小时前
基于单片机的老人生活安全监测系统
单片机·嵌入式硬件·生活
东胜物联2 小时前
探寻5G工业网关市场,5G工业网关品牌解析
人工智能·嵌入式硬件·5g
Acrelhuang2 小时前
安科瑞5G基站直流叠光监控系统-安科瑞黄安南
大数据·数据库·数据仓库·物联网
stm32发烧友2 小时前
基于STM32的智能家居环境监测系统设计
stm32·嵌入式硬件·智能家居
jjyangyou2 小时前
物联网核心安全系列——物联网安全需求
物联网·算法·安全·嵌入式·产品经理·硬件·产品设计