发个小福利。更新RT thread的ELMFS到0.11版,另增加utf-8支持

[复制链接]
1207|1
手机看帖
扫描二维码
随时随地手机跟帖
ctsdswk|  楼主 | 2015-12-5 11:59 | 显示全部楼层 |阅读模式
本帖最后由 ctsdswk 于 2016-5-21 19:04 编辑


最新版本的RT thread只支持0.08的ELMFS,我在st网站上下了最新的0.11版并移植到了DFS下。主要改动是DFS与ELMFS之间的接口层文件dfs_elm.c。另外需要在0.11版的ff.c中加入以下代码:
#if _VOLUMES > 1
int elm_get_vol(FATFS *fat)
{
        int vol;

        for (vol = 0; vol < _VOLUMES; vol ++)
        {
                if (FatFs[vol] == fat) return vol;
        }

        return -1;
}
#endif




FRESULT f_seekdir(
        DIR *dj,                /* Pointer to the open directory object */
        int offset                /* the seek offset */
)
{
        int i = 0;

        if (dir_sdi(dj, 0) != FR_OK || offset < 0)
                return FR_INT_ERR;

        while(i < offset)
        {
                if(dir_read(dj, 0) != FR_OK || dir_next(dj, 0) != FR_OK)
                        return FR_INT_ERR;
                i++;
        }
        return FR_OK;
}


由于时间有限,我只测试了创建长名称的目录。支持_LFN_UNICODE的0或1,_STRF_ENCODE的0或3,_VOLUMES的1或4。及其它们的组合。使用者需要仔细测试自己的环境,以免我没测试到的bug带来损失。

dfs_elm.rar

6.94 KB

相关帖子

254278455| | 2017-2-3 14:36 | 显示全部楼层
总结的很好

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

353

帖子

3

粉丝