diff --git a/components/dfs/filesystems/elmfat/dfs_elm.c b/components/dfs/filesystems/elmfat/dfs_elm.c index f6b6ed48d9d99614a17c00d82361a70fccbb4178..1338e3252efaddd095d3c2ee6ee885a6dfb7d0be 100644 --- a/components/dfs/filesystems/elmfat/dfs_elm.c +++ b/components/dfs/filesystems/elmfat/dfs_elm.c @@ -212,6 +212,7 @@ int dfs_elm_mkfs(rt_device_t dev_id) int flag; FRESULT result; int index; + char logic_nbr[2] = {'0',':'}; work = rt_malloc(_MAX_SS); if(RT_NULL == work) { @@ -255,23 +256,26 @@ int dfs_elm_mkfs(rt_device_t dev_id) * on the disk, you will get a failure. so we need f_mount here, * just fill the FatFS[index] in elm fatfs to make mkfs work. */ - f_mount(fat, "", (BYTE)index); + logic_nbr[0] = '0' + index; + f_mount(fat, logic_nbr, (BYTE)index); } } + else + logic_nbr[0] = '0' + index; /* [IN] Logical drive number */ /* [IN] Format options */ /* [IN] Size of the allocation unit */ /* [-] Working buffer */ /* [IN] Size of working buffer */ - result = f_mkfs("", FM_ANY, 0, work, _MAX_SS); + result = f_mkfs(logic_nbr, FM_ANY, 0, work, _MAX_SS); rt_free(work); /* check flag status, we need clear the temp driver stored in disk[] */ if (flag == FSM_STATUS_USE_TEMP_DRIVER) { rt_free(fat); - f_mount(RT_NULL, "",(BYTE)index); + f_mount(RT_NULL, logic_nbr,(BYTE)index); disk[index] = RT_NULL; /* close device */ rt_device_close(dev_id);