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
11 #include <rtthread.h>
12 #include <rtdevice.h>
13
14 #include "fal.h"
15 #include <dfs_fs.h>
16
17 #define DBG_TAG "mnt"
18 #define DBG_LVL DBG_INFO
19 #include <rtdbg.h>
20
21 #ifdef RT_USING_DFS
22 #include <dfs_fs.h>
23
mnt_init(void)24 int mnt_init(void)
25 {
26 #ifdef BSP_USING_ON_CHIP_FLASH
27 fal_init();
28 #define FS_PARTITION_NAME "flash"
29 struct rt_device *mtd_dev;
30 mtd_dev = fal_blk_device_create(FS_PARTITION_NAME);
31 if (!mtd_dev)
32 {
33 LOG_E("Failed to create device.\n");
34 }
35 #ifdef BSP_USING_ON_CHIP_FLASH_FATFS
36 if (dfs_mount(FS_PARTITION_NAME, "/", "elm", 0, 0) == 0)
37 {
38 LOG_I("Filesystem initialized!");
39 }
40 else
41 {
42 dfs_mkfs("elm", FS_PARTITION_NAME);
43 if (dfs_mount(FS_PARTITION_NAME, "/", "elm", 0, 0) != 0)
44 {
45 LOG_I("Failed to initialize filesystem!");
46 }
47 }
48 #endif /* BSP_USING_ON_CHIP_FLASH_FATFS */
49 #endif /* BSP_USING_ON_CHIP_FLASH */
50 return 0;
51 }
52 INIT_ENV_EXPORT(mnt_init);
53 #endif /* RT_USING_DFS */
54