Browse Source

修复 mkfs失败的错误

yygg_you 7 năm trước cách đây
mục cha
commit
d428166f08
1 tập tin đã thay đổi với 7 bổ sung3 xóa
  1. 7 3
      components/dfs/filesystems/elmfat/dfs_elm.c

+ 7 - 3
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);