【ESP32S2】把只有4M flash的开发板制作成一个2G的U盘(一)

您所在的位置:网站首页 如何将tf卡口转接u盘 【ESP32S2】把只有4M flash的开发板制作成一个2G的U盘(一)

【ESP32S2】把只有4M flash的开发板制作成一个2G的U盘(一)

2024-07-02 19:55| 来源: 网络整理| 查看: 265

文章目录 前言一、背景二、制作虚拟磁盘VHD三、生成磁盘数据四、生成.h头文件五、改造read10函数六、测试七、工具八、参考

前言

前面的文章《使用ESP32S2开发板制作U盘,支持无线访问》讲述了如何将ESP32S2开发板制作成一个U盘。本文继续延伸,讲述如何把开发板制作成一个看起来容量远远大于flash实际大小的U盘。为方便起见,就叫它“虚拟U盘”吧。 本文用到的工具,附在了第七章。

一、背景

ESP32S2开发板flash只有4M,但出于某些目的,把它插到主机(PC、Android 手机、平板、电视、车机等)上时,需要识别成一个2G的U盘(也可以是4G、8G,大小可指定),并且里面存放大于4M的文件,比如一个长4小时的MP3文件。 ——这听起来很玄妙!但实现起来非常简单!

二、制作虚拟磁盘VHD PC打开“创建并格式化硬盘分区”工具(磁盘管理也可),菜单栏点击“操作”-“创建VHD”,位置自选比如放在桌面,命名为“fat32_2g.vhd”,点击“确定”。 在这里插入图片描述 在这里插入图片描述看到创建好的磁盘,在1区域右击鼠标-“初始化磁盘”-点选“MBR”-“确定”。 在这里插入图片描述在2区域右击鼠标-“新建简单卷”,继续下一步,在格式化分区时,选择“FAT32”。然后“下一步”-“完成”。 在这里插入图片描述 三、生成磁盘数据

使用“HxD”工具,打开前面创建的硬盘:“工具”-“读取硬盘”-“硬盘3”。 在这里插入图片描述 这里可能会有疑问:逻辑硬盘中的“新加卷E”和物理硬盘中的“硬盘3”,是不是一回事。其实不是,逻辑硬盘是物理硬盘的一部分,简单说下区别:

逻辑扇区0,对应的是DBR扇区。DBR分为两部分:DOS引导程序和BPB(BIOS参数块)。DBR的开头:EB 3C 90(FAT16),EB 58 90(FAT32)。 物理扇区0,对应的是MBR扇区。开头为:33 C0 8E。

打开之后,点击“文件”-“另存为”,命名为“fat32_2g.data”。 在这里插入图片描述

四、生成.h头文件

打开工具“FileToh.exe”-“Open”,选择上一步生成的“fat32_2g.data”,等计算完成后点击“Save”,会提示“fat32_2g.h”已经生成。

五、改造read10函数 将头文件“fat32_2g.h”加入到自己的工程中;在tusb_msc.c中,引用头文件。改造tud_msc_read10_cb()函数. /* file: tusb_msc.c */ #include "fat32_2g.h" #define SKY_DISK_BLOCK_NUM (2*1024*1024*1024/512) // 扇区总数=2G/512 #define SKY_DISK_BLOCK_SIZE (512) // 一个扇区大小 /* 判断扇区是不是非空扇区 */ int32_t IsInRomSector(uint32_t lba) { for (int32_t i = 0; i


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3