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

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

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

内部不够只能外扩,然后就是要编写各种驱动,还有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,也无需修改代码,爽!

相关推荐
踏着七彩祥云的小丑5 小时前
嵌入式测试学习第1天:电路基础核心概念
单片机·嵌入式硬件
笨笨饿6 小时前
#79_NOP()嵌入式C语言中内联汇编宏的抽象封装模式研究
linux·c语言·网络·驱动开发·算法·硬件工程·个人开发
Deitymoon7 小时前
STM32F103——超声波模块
stm32·单片机·嵌入式硬件
你怎么知道我是队长10 小时前
计算机系统基础22---计算机的基本组成---IO控制方式
单片机·嵌入式硬件
風清掦10 小时前
【STM32学习笔记-12】Unix 时间戳、BKP 备份寄存器与 RTC 实时时钟
笔记·stm32·单片机·嵌入式硬件·学习·实时音视频·unix
feasibility.13 小时前
嵌入式系统的“能量-执行”拓扑学:电池、舵机、电机与电调的深层关系
科技·嵌入式硬件·电机·拓扑学·舵机·电池·电调
振南的单片机世界13 小时前
EXTI边沿检测:上升沿、下降沿、双边沿,硬件自动捕捉
stm32·单片机·嵌入式硬件
数字化顾问14 小时前
(97页PPT)麦肯锡战略规划制定方法及模板制品(附下载方式)
人工智能·物联网
czhaii14 小时前
4-20mA芯片采样4-20mA电路分析
硬件工程
踏着七彩祥云的小丑15 小时前
嵌入式——认识电子元器件——符号
单片机·嵌入式硬件