当前位置: 首页 > news >正文

基于RT-Thread快速上手SD NAND 虚拟文件系统

  SD NAND 也称之为贴片式TF卡,贴片式SD卡,采用标准的SDIO接口,兼容SPI接口。下图所示为CS 新一代CS SD NAND  NP1GCR01-AOW  大小为128M,对比128M的SD卡,可以看到贴片SD卡尺寸更小,不要SD卡座,占用更小的PCB面积;也可以节省PCB板层数,2层板即可使用。而且兼容可替代普通TF卡/SD卡,硬件电路软件程序通用。本案例基于RT-Thread物联网操作系统,更是不需要编写任何复杂的驱动代码就可以SD NAND读写操作。

  (文末提供,STM32驱动代码下载连接,需要可以自行下载)

  

SD NAND,贴片式TF卡,贴片式SD卡,北京君正,nor flash,存储,芯片,主控,小尺寸emmc,大容量SLC Nand,语音芯片,语音识别,语音控制,语音模块,离线语音

  

SD NAND,贴片式TF卡,贴片式SD卡,北京君正,nor flash,存储,芯片,主控,小尺寸emmc,大容量SLC Nand,语音芯片,语音识别,语音控制,语音模块,离线语音

       

SD NAND,贴片式TF卡,贴片式SD卡,北京君正,nor flash,存储,芯片,主控,小尺寸emmc,大容量SLC Nand,语音芯片,语音识别,语音控制,语音模块,离线语音

  将SD NAND插入SD卡卡座。首先,新建一个RT-Thread项目工程,这里基于Draco开发板创建。

  

SD NAND,贴片式TF卡,贴片式SD卡,北京君正,nor flash,存储,芯片,主控,小尺寸emmc,大容量SLC Nand,语音芯片,语音识别,语音控制,语音模块,离线语音

  完整的RT-thread项目默认是开启虚拟文件系统组件,RT-Thread DFS 组件的主要功能特点有:

  •   为应用程序提供统一的 POSIX 文件和目录操作接口:read、write、poll/select 等。

  •   支持多种类型的文件系统,如 FatFS、RomFS、DevFS 等,并提供普通文件、设备文件、网络文件描述符的管理。这里默认开启FatFS.

  •   支持多种类型的存储设备,如 SD Card、SPI Flash、Nand Flash 等。

  

SD NAND,贴片式TF卡,贴片式SD卡,北京君正,nor flash,存储,芯片,主控,小尺寸emmc,大容量SLC Nand,语音芯片,语音识别,语音控制,语音模块,离线语音

  在 RT-Thread 中,我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的路径上,然后通过这个路径来访问存储设备。在应用程序文件夹下可找到mnt.c源程序。可以看到挂载文件系统的代码如下所示。

  

SD NAND,贴片式TF卡,贴片式SD卡,北京君正,nor flash,存储,芯片,主控,小尺寸emmc,大容量SLC Nand,语音芯片,语音识别,语音控制,语音模块,离线语音

  上图通过自动化初始化代码实现文件系统挂载。挂载成功dfs_mount函数返回0.通过调试串口可以看到打印信息。Mount "/dev/sd0" on "/":0 done,说明SD NAND挂载成功。

SD NAND,贴片式TF卡,贴片式SD卡,北京君正,nor flash,存储,芯片,主控,小尺寸emmc,大容量SLC Nand,语音芯片,语音识别,语音控制,语音模块,离线语音

  读写文件测试:文件系统正常工作后,就可以运行应用示例,在该示例代码中,首先会使用 open() 函数创建一个文件 text.txt,并使用 write() 函数在文件中写入字符串 “RT-Thread Programmer!\n”,然后关闭文件。再次使用 open() 函数打开 text.txt 文件,读出其中的内容并打印出来,最后关闭该文件。

  

SD NAND,贴片式TF卡,贴片式SD卡,北京君正,nor flash,存储,芯片,主控,小尺寸emmc,大容量SLC Nand,语音芯片,语音识别,语音控制,语音模块,离线语音

  测试结果:在调试中断输入msh 命令readwrite_sample,即可运行案例。可以看到成功创建了文本,并写入了数据。

  

SD NAND,贴片式TF卡,贴片式SD卡,北京君正,nor flash,存储,芯片,主控,小尺寸emmc,大容量SLC Nand,语音芯片,语音识别,语音控制,语音模块,离线语音

  STM32驱动下载链接:https://pan.baidu.com/s/1t9Bd3YUNtQmgpyQbmOIMEA?pwd=8051

  提取码:8051

相关文章:

  • Mac 打不开github解决方案
  • [pluginviteimport-analysis] vite 提示jsx语法报错
  • 《Kotlin核心编程》笔记:面向对象
  • 03 python循环语句
  • 7. 异常、断言及日志
  • 网络基础(五):网络层协议介绍
  • Crow:黑魔法 调用Rule绑定的handler_
  • 数据分享 I 全国市级商品房屋销售数据,shp/excel格式,2005-2020年数据
  • 【玩转TableAgent数据智能分析】利用TableAgent进行教育数据分析
  • 关于Pytorch和Numpy中的稀疏矩阵sparse的知识点
  • 模板方法模式(行为型)
  • 力扣每日一题:2132. 用邮票贴满网格图(2023-12-14)
  • ElementPlus中的分页逻辑与实现
  • 【算法】【动规】乘积为正数的最长子数组长度
  • 【期末复习向】n元gram的应用
  • 【mysql】环境安装、服务启动、密码设置
  • 【React系列】如何构建React应用程序
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • avalon2.2的VM生成过程
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • E-HPC支持多队列管理和自动伸缩
  • Node + FFmpeg 实现Canvas动画导出视频
  • Promise初体验
  • Python中eval与exec的使用及区别
  • Spring-boot 启动时碰到的错误
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • V4L2视频输入框架概述
  • Web Storage相关
  • 将回调地狱按在地上摩擦的Promise
  • 解决iview多表头动态更改列元素发生的错误
  • 蓝海存储开关机注意事项总结
  • 利用jquery编写加法运算验证码
  • 你真的知道 == 和 equals 的区别吗?
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 译有关态射的一切
  • 用element的upload组件实现多图片上传和压缩
  • 国内开源镜像站点
  • #if 1...#endif
  • #ifdef 的技巧用法
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (1)(1.13) SiK无线电高级配置(六)
  • (2020)Java后端开发----(面试题和笔试题)
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (SpringBoot)第七章:SpringBoot日志文件
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)ssm高校实验室 毕业设计 800008
  • (数据结构)顺序表的定义
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (学习日记)2024.01.19
  • (正则)提取页面里的img标签
  • (转)Linux整合apache和tomcat构建Web服务器
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • **python多态