振南技术干货集:znFAT 硬刚日本的 FATFS 历险记(8)

news2024/9/24 15:29:11

注解目录

1、znFAT 的起源

1.1 源于论坛

(那是一个论坛文化兴盛的年代。网友 DIY SDMP3 播放器激起了我的兴趣。)

1.2 硬盘 MP3 推了我一把

(“坤哥”的硬盘 MP3 播放器,让我深陷 FAT 文件系统不能自拔。)

1.3 我的导师-- 顾国昌教授

(哈军工时期的老教授,德高望重的人生导师。)

1.4 我的母校-- 哈工程

(隐藏牛校哈工程,网络名嘴张雪峰所言非虚。振南给你讲讲母校历史:哈军工、

工程学院、哈船院、哈工程。)

1.5 那场严重超时的答辩会

(20 分钟的答辩超时 1 小时,老师表示赞叹。现场承诺要把文件系统写成书。)

1.6 时隔多年的谢师会

(承诺必须兑现,5 年之后的谢师会,我擎书谢师。不要轻易作出承诺,除非你真

得能作到!)

2、高手如云 认清对手

2.1 国外 FAT 方案简介

1 )FATFS

2 )EFSL

3 )UCFS

4 )TFFS

5 )DOSFS

(列举那些主流 FAT 文件系统方案,并进行详细介绍。)

2.2 国内 FAT 方案简介

1 )ZLG/FS

2 )沁恒 FAT

(国内尚无成型开源的 FAT 文件系统方案。但是我们要支持国货。)

3、硬刚高手 挑战自己

3.1 与高手竞速

3.2 挑战自己

(这一节我写了一个月。环比各大知名方案,看看到底谁更快!最终,挑战了自我。)

4、znFAT 精彩应用大赏

4.1 振南的精彩实验

4.1.1 SD 卡 卡 WAV 音频播放器

4.1.2 SD 卡电子滚动屏

4.1.3 SD 卡 卡 MP3 播放器

4.1.4 AT89S51 离线下载器

4.1.5 数据采集导入 EXCEL

4.1.6 串口文件窃取器

4.1.7 录音笔于 (基于 VS1003B) )

4.1.8 文件无线传输实验

4.1.9 嵌入式脚本程序解释器

4.1.10 绘图板实验(基于 STM32F4 ,屏幕截图存为 BMP 图片)

4.1.11 MEMS 声音传感器“ 硅麦” 录音实验

(znFAT 的最大亮点在于各种精彩的应用,希望振南的这些实验可以让你眼前一亮。)

4.2 精彩的第三方项目应用

4.2.1 仿 仿 Metro UI 系统应用实验

4.2.2 通过 U 盘对产品进行升级

4.2.3 嵌入式网页服务器

4.2.4 STM32+LD3320 作声控音频播放器

4.2.5 BMP 图片浏览

4.2.6 VGA 显示 SD 卡中的图片(基于 FPGA) )

4.2.7 汉字电子书(基于 STM8) )

4.2.8 文本语音合成实验(TTS ,基于 NUC120) )

4.2.9 《跳跃小猫》动画播放(基于 FPGA NIOSII)

znFAT 精彩应用大赏

4.2 精彩的第三方项目应用


1.仿 Metro UI 系统应用实验

所需主要硬件;K60DN256VLL10(飞思卡尔研制的 Cortex- M4 内核的单片机芯片)K60 实验板、TFT 液晶、RTC 芯片等,SD/SDHC 卡

作者:杨熙(网友,就职于 NXP 半导体公司)

实验功能描述:此实验以 K60 实验板为硬件平台,使用CGUI+uCOS+zFAT 在 TFT液晶上实现了仿 metroUl的界面效果。可对 SD 卡中的图像与文本文件进行浏览。实验效果如图 18.48 所示。


图 18.48 仿 Metro UI 系统实验效果图

实际硬件平台如图18.49 所示。


图 18.49 GUI 实验硬件平台

2.通过 U 盘对产品进行升级

所需主要硬件:LPC1788 即相关硬件与接口(硬件平台为网友在研的产品)

作者:邵建明、刘磊

实验功能描述:插上 U 盘之后,通过 nFAT 扫描  盘中的文件,如有升级系统配置文件则升级;如没有,再扫描是否有 *.MP3,有则播放音乐。硬件平台实际效果如图 18.50 所示。


图 18.50 某产品中通过 znFAT+U 盘完成升级与音频播放

3.嵌入式网页服务器

所需主要硬件: ATMEGA128 、ENC28J60 等。

作者:陈永鹏(网友)

实验功能描述;此实验中使用 ATMEGA128 为主 CPU,ENC28J60 为以太网控制器,移植了UIP 作为其 TCP/IP 协议栈。使用SD 卡存储 HTML 网页文件,通过超文本传输协议来进行网页文件数据的传送,最终实现服务器的功能。实验硬件如图 18.51 所示。


图 18.51 嵌入式网页服务器硬件平台

4.STM32+LD3320 作声控音频播放器

所需主要硬件:STM32F103RBT6、LD3320(一种 MP3 播放及语音识别芯片)麦克风SD卡等。

作者:钱晓平(网友)

实验功能描述:首先在 LD3320 芯片中加载要别的拼音串,比如 kai deng(开灯)、guanbi xi tong(关闭系统)等,然后启动识别。人说出汉语“开灯”,LD3320 对声音进行识别并产生相应的动作,完成之后进行语音提示,即使用 nFAT 读取存储在 SD 卡中相应的 MP3 文件数据送至 LD3320 进行解码播放。实验硬件如图 18.52 所示。


图 18.52 声控音频播放器实验硬件平台

5.BMP 图片浏览

所需主要硬件:PIC18F66K22(编译器为 MCC18)、SD 卡、TFT 液晶等。

作者:未知

实验功能描述:此实验中使用 nFAT 依次读取 SD 卡中所有的 BMP 文件(24 位 BMP)解析参数,读取其像素数据送到 TFT 液晶显示。实验平台与效果如图 18.53~18.54 所示。


图 18.53 PIC18F66K22 作 BMP 图片显示实验硬件平台


图 18.54 PIC18F66K22 作 BMP 图片显示实验效果

6.VGA 显示 SD 卡中的图片(基于 FPGA )*

这几天搞定了 SD 卡之后,又接着看文件系统。说实话想短时间内把整个 FAT32 文件系统都搞定,而且很稳定很健壮,是不太容易的。有现成的 nFAT 可以移植振南兄可是花了不少心思在这上面。我这里没有直接移植他的文件系统,而是参考 nFAT 自己写了个很简单的只能读取文件的“所谓文件系统”。因为此实验只涉及图片文件的读取,所以我只做了读取的部分,完全与 FAT32 兼容。

网上能搜到的关于数码相框的方案,大多是基于液晶屏显示的,我手里没有现成的液晶屏,VGA 倒是有两个。大家选择液晶屏而不选 VGA 的原因,我后来才知道:因为 VGA 显示需要的显存比较大,一般至少 2 MB,这么大的显存是需要银子的。DE2 上是有 2 MB的SRAM 的,而 DEO 上除了 SDRAM 和 FLASH之外什么都没有。这板子资源少。没有办法只能把图片的尺寸减小到能放在片内 RAM 里才行。DEO 用的是 EP3C16F484C6 的 FPGA(属Altera Cyclonell系列),片上只有 56 个 M9KRAM,56 这个数字很鸡,于 32 和64之间,所以我就建立了一个32 KB 的双口 RAM。由 CPU 读取 SD 卡的内容,写入 RAM,然后VGA 以50 MHz的时钟读取并显示,VGA 分辨率为 800X600@72 Hz。

先找个测试用的图片,不要太大,大约在 160X120 左右。然后用Image2Led 转化成.bin格式,宽度为 97,高度为 150(这个奇怪的图像尺寸是为了将就可怜的 32 KB 显存)如图 18.55 所示。

然后将由 Image2Lcd 生成的.bin 文件复制到 SD 卡中随后就可以开始实验了。

实验硬件平台与实际效果如图 18.56 和 18.57 所示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1263568.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧化工~工厂设备检修和保全信息化智能化机制流程

化工厂每年需要现场检修很多机器,比如泵、压缩机、管道、塔等等,现场检查人员都是使用照相机,现场拍完很多机器后,回办公室整理乱糟糟的照片,但是经常照了之后无法分辨是哪台设备,而且现场经常漏拍&#xf…

ROC及曲线面积汇总学习

目录 ROC基础 生成模拟数据 率的计算 R语言计算测试 ROCR: pROC ROC绘制 单个ROC 两个ROC Logistic回归的ROC曲线 timeROC ROC基础 ROC曲线的横坐标是假阳性率,纵坐标是真阳性率,需要的结果是这个率表示疾病阳性的率(…

第六节HarmonyOS UIAbility内页面的跳转和数据传递

一、页面跳转 在一个应用包含一个UIAbility的场景下,可以通过新建多个页面来实现和丰富应用的内容。这会涉及到UIAbility内页面的新建以及UIAbility内页面的跳转和数据传递。 打开DevEco Studio,选择一个Empty Ability工程模板,创建一个工程&…

基于Python+OpenCV+dlib+Tensorflow深度学习的人脸表情识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 人脸表情识别是一种重要的计算机视觉任务,它涉及到对人脸图像中的表情进行分类和理解。在这个系统中&am…

力扣23. 合并 K 个升序链表(java,最小堆解法)

Problem: 23. 合并 K 个升序链表 文章目录 题目描述思路解题方法复杂度Code 题目描述 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 思路 1.对于合并k个有序链表,我们较为容易想…

使用Tensorboard可视化 遇到无法访问此网站

问题: 使用Tensorboard可视化 遇到无法访问此网站 解决方法:后面加上服务器ip[参考] tensorboard --logdir目标目录 --hostxxx.xxx.xxx.xx

简要介绍Spring原生框架与Spring是轻量级框架的原因

😉😉 学习交流群: ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 🥭🥭3:QQ群:583783…

C++ 泛型编程,函数模版和类模版

1.泛型编程 泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础 就比如说活字印刷术,就是提供一个模具,然后根据模具来印刷出不同的字。 泛型编程跟着类似,提供一个模版,根据这…

Node.js入门指南(完结)

目录 接口 介绍 RESTful json-server 接口测试工具 会话控制 介绍 cookie session token 上一篇文章我们介绍了MongoDB,这一篇文章是Node.js入门指南的最后一篇啦!主要介绍接口以及会话控制。 接口 介绍 接口是前后端通信的桥梁 &#xff0…

【栈和队列(1)(逆波兰表达式)】

文章目录 前言什么是栈(Stack)栈方法栈的模拟实现链表也可以实现栈逆波兰表达式逆波兰表达式在栈中怎么使用 前言 什么是栈(Stack) 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0…

MySQL数据库【一】

博学而笃志,切问而近思 文章目录 数据库简介服务器、数据库以及表的关系连接数据库数据库操作命令创建数据库查看数据库创建语句查看数据库使用数据库修改数据库删除数据库 数据库字符集和校验规则查看系统默认字符集查看系统默认校验规则查看数据库支持的字符集查看…

文本编辑 换行符CRLF/CR/LF问题

参考资料 Linux—CRLF/CR/LF等回车换行符问题详解改行コードCRはなぜ(^M)で\rなのかテキストファイルの行末に^Mが表示されるLinux 替换^M字符 方法 目录 一. 遇到的问题二. 换行符释义三. 换行符查看四. 去除 ^M4.1 通过文本编辑器转换换行符4.2 在lin…

Html网页threejs显示obj,ply三维图像实例

程序示例精选 Html网页threejs显示obj,ply三维图像实例 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《Html网页threejs显示obj,ply三维图像实例》编写代码,代码整洁&#xff0…

【JavaScript框架】Vue与React中的组件框架概念

组件框架是用于构建应用程序的工具,以便将UI和逻辑划分为单独的可重用组件。目前的组件框架包括React、Vue、Angular、Ember、Svelte等。 Vue和React使用了常见的框架概念,如处理状态、道具、引用、生命周期挂钩、事件等。这两个框架在当今的web开发中被…

使用.NET8中的.http文件和终结点资源管理器

本文将以.NET8的模板增加的.http文件为引,介绍 Visual Studio 2022 中的 .http 文件编辑器,这是一个用于测试 ASP.NET Core 项目的强大工具。 文章目录 1. 背景2. HTTP 文件介绍2.1 简介2.2 .http 文件语法3. 在 Visual Studio 中使用3.1 终结点资源管理…

大数据平台/大数据技术与原理-实验报告--部署全分布模式HBase集群和实战HBase

实验名称 部署全分布模式HBase集群和实战HBase 实验性质 (必修、选修) 必修 实验类型(验证、设计、创新、综合) 综合 实验课时 2 实验日期 2023.11.07-2023.11.10 实验仪器设备以及实验软硬件要求 专业实验室&#xff…

【Apifox】测试工具自动编写接口文档

在开发过程中,我们总是避免不了进行接口的测试, 而相比手动敲测试代码,使用测试工具进行测试更为便捷,高效 今天发现了一个非常好用的接口测试工具Apifox 相比于Postman,他还拥有一个非常nb的功能, 在接…

交流负载测试使用场景

交流负载测试是一种在特定环境下,对电力设备、汽车电子部件,工业自动化设备、网络设备、家电产品,航空航天设备以及医疗器械等产品进行测试的方法,该测试的目的是评估这些设备在实际运行条件下的性能和可靠性。 1电力设备测试 交…

没有预装Edge浏览器的Windows系统安装Edge正式版的方法,离线安装和在线安装

一、在线安装 没有预装Edge浏览器的Windows系统安装Edge正式版的方法 二、离线安装 进入到下面这个目录 C:\Program Files (x86)

vivado产生报告阅读分析27

1、设计 QoR 汇总 命令行选项 -qor_summary 可用于为流程中每个步骤生成 QoR 汇总信息。该选项只能从 Tcl 控制台使用。该选项可按两种格式生成: 基于文本的报告或 JSON 格式。 要生成基于文本的格式 , 请运行以下命令 : report_des…