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