boot_card --> bootcard_bsp_libc_helper --> bsp_libc_init -->
/*
* Init the RTEMS libio facility to provide UNIX-like system
* calls for use by newlib (ie: provide open, close, etc)
* Uses malloc() to get area for the iops, so must be after malloc init
*/
if (rtems_libio_init_helper)
(*rtems_libio_init_helper)();
其实调用的是
rtems_libio_init
/*
* Initialize the base file system infrastructure.
*/
if (rtems_fs_init_helper)
(* rtems_fs_init_helper)();
实际调用的是 rtems_filesystem_initialize
是从 rtems_filesystem_mount_table 里面找到第一个需要装载的文件系统
const rtems_filesystem_mount_table_t configuration_mount_table = {
#if defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM)
RTEMS_FILESYSTEM_TYPE_DEVFS,
#elif defined(CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM)
RTEMS_FILESYSTEM_TYPE_MINIIMFS,
#else /* using IMFS as base filesystem */
RTEMS_FILESYSTEM_TYPE_IMFS,
#endif
RTEMS_FILESYSTEM_READ_WRITE,
NULL,
NULL
};
const rtems_filesystem_mount_table_t
*rtems_filesystem_mount_table = &configuration_mount_table;
const int rtems_filesystem_mount_table_size = 1;
可以看出,根据配置,是希望使用 devfs,还是 miniIMFS ,默认是 IMFS 作为根文件系统。
属性是可读可写,mount为 NULL
函数接着mount到 / 根目录,然后生成 /dev 目录。初始化装载文件系统就结束了。
我觉得。用内存作为基本的根文件系统的好处是稳定,至少系统不会因为存储介质的损坏。而不能
启动,或者影响内核的正常运作,至少最少系统能跑,不会死掉。
/*
* Init the RTEMS libio facility to provide UNIX-like system
* calls for use by newlib (ie: provide open, close, etc)
* Uses malloc() to get area for the iops, so must be after malloc init
*/
if (rtems_libio_init_helper)
(*rtems_libio_init_helper)();
其实调用的是
rtems_libio_init
/*
* Initialize the base file system infrastructure.
*/
if (rtems_fs_init_helper)
(* rtems_fs_init_helper)();
实际调用的是 rtems_filesystem_initialize
是从 rtems_filesystem_mount_table 里面找到第一个需要装载的文件系统
const rtems_filesystem_mount_table_t configuration_mount_table = {
#if defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM)
RTEMS_FILESYSTEM_TYPE_DEVFS,
#elif defined(CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM)
RTEMS_FILESYSTEM_TYPE_MINIIMFS,
#else /* using IMFS as base filesystem */
RTEMS_FILESYSTEM_TYPE_IMFS,
#endif
RTEMS_FILESYSTEM_READ_WRITE,
NULL,
NULL
};
const rtems_filesystem_mount_table_t
*rtems_filesystem_mount_table = &configuration_mount_table;
const int rtems_filesystem_mount_table_size = 1;
可以看出,根据配置,是希望使用 devfs,还是 miniIMFS ,默认是 IMFS 作为根文件系统。
属性是可读可写,mount为 NULL
函数接着mount到 / 根目录,然后生成 /dev 目录。初始化装载文件系统就结束了。
我觉得。用内存作为基本的根文件系统的好处是稳定,至少系统不会因为存储介质的损坏。而不能
启动,或者影响内核的正常运作,至少最少系统能跑,不会死掉。