RTEMS IMFS文件根文件系统的初始化过程

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 目录。初始化装载文件系统就结束了。


我觉得。用内存作为基本的根文件系统的好处是稳定,至少系统不会因为存储介质的损坏。而不能
启动,或者影响内核的正常运作,至少最少系统能跑,不会死掉。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值