mnt.c 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*
  2. * Copyright (c) 2006-2022, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2022-06-08 supperthomas first version
  9. */
  10. #include <rtthread.h>
  11. #include <rtdevice.h>
  12. #include "fal.h"
  13. #define DBG_TAG "mnt"
  14. #define DBG_LVL DBG_INFO
  15. #include <rtdbg.h>
  16. #ifdef RT_USING_DFS
  17. #include <dfs_fs.h>
  18. int mnt_init(void)
  19. {
  20. #ifdef BSP_USING_ON_CHIP_FLASH
  21. fal_init();
  22. #define FS_PARTITION_NAME "flash"
  23. struct rt_device *mtd_dev;
  24. mtd_dev = fal_blk_device_create(FS_PARTITION_NAME);
  25. if (!mtd_dev)
  26. {
  27. LOG_E("Failed to create device.\n");
  28. }
  29. #ifdef BSP_USING_ON_CHIP_FLASH_FATFS
  30. if (dfs_mount(FS_PARTITION_NAME, "/", "elm", 0, 0) == 0)
  31. {
  32. LOG_I("Filesystem initialized!");
  33. }
  34. else
  35. {
  36. dfs_mkfs("elm", FS_PARTITION_NAME);
  37. if (dfs_mount(FS_PARTITION_NAME, "/", "elm", 0, 0) != 0)
  38. {
  39. LOG_E("Failed to initialize filesystem!");
  40. }
  41. }
  42. #endif /* BSP_USING_ON_CHIP_FLASH_FATFS */
  43. #endif /* BSP_USING_ON_CHIP_FLASH */
  44. return 0;
  45. }
  46. INIT_ENV_EXPORT(mnt_init);
  47. #endif /* RT_USING_DFS */