FAT32 FileSystem Library
This is FAT32 FileSystem Library, which is #![no_std]
and does not use alloc
.
Test passed with sdio_sdhc and WindowsAPI.
Supported Features
- Read
- Create File AND Dir
- Write(OverWritten and Append)
- Delete File AND DIR
Github地址
为什么要写这个
因为在玩嵌入式的时候,没有相关的库,只能自己造了
为啥子要重写呢
- 之前的写的真是垃圾,现在都被我yank了
- 在论坛上点进了个帖子,说的一个大神用Rust实现了个x86的bootloader, 我进去看了个issue, 惊喜的发现其fat32文件系统的功能用的我的实现,顿时感觉十分的羞愧(写的真的很糟糕),便有了重写的念头
旧版本的开发历程
初上手嵌入式设备,就想用Rust来写,折腾到存储方面的时候,发现并没有相关的库,便开始了折腾之路,先实现了sdio_sdhc驱动。后来在开发fat32库的时候力不从心,当时的调试是麻烦的,需要连接嵌入式设备,然后用Clion配置GDB调试, 反复插卡拔卡,开发过程十分煎熬,最后挤出了1.0版本,并编写了stm32f407的IAP Bootloader, 实现了通过sdcard更新固件。我熟知1.0版本的fat32有很多不确定bug,故一直有重写的想法。
新版本的开发历程
在整完pipe后,便开始了重写历程,这次我选择了windows api来对存储设备来读取,可以方便的进行单元测试,且调试更加方便,在其加持下,今天发布了2.0版本,并且把之前的版本全部yank了
感想
- 开发不能操之过急,特别是开发库的时候,需要考虑测试和调试是否可靠便利
- 对于垃圾代码得有重写的勇气
Ext Link: https://github.com/Spxg/fat32
1
共 4 条评论, 1 页
评论区
写评论上班估计就没时间了,现在还在上学,趁着有时间多玩玩
--
👇
Javaer to Rustacean: 我就看看。厉害了,平常上班有时间搞这个?
谢谢
--
👇
chirsz-ever: 强!支持
我就看看。厉害了,平常上班有时间搞这个?
强!支持