< 返回版块

Spxg 发表于 2020-10-16 20:33

Tags:stm32, embedded, filesystem

FAT32 FileSystem Library

crates.io version

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

评论区

写评论
作者 Spxg 2020-10-16 23:17

上班估计就没时间了,现在还在上学,趁着有时间多玩玩

--
👇
Javaer to Rustacean: 我就看看。厉害了,平常上班有时间搞这个?

作者 Spxg 2020-10-16 23:16

谢谢

--
👇
chirsz-ever: 强!支持

Javaer to Rustacean 2020-10-16 23:03

我就看看。厉害了,平常上班有时间搞这个?

chirsz-ever 2020-10-16 21:18

强!支持

1 共 4 条评论, 1 页