rtems IMFS初始化

rtems初始化FS,调用流程:(4.11代码)

(1)boot_card

(2)bsp_libc_init

 /*
   *  Initialize the C library for those BSPs using the shared
   *  framework.
   */

(3)函数指针(*rtems_libio_init_helper

    /*
     *  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
     */

(4)编译指令(是否CONFIGURE_APPLICATION_DISABLE_FILESYSTEM:如果不disable):

rtems_libio_init

(5)函数指针:*rtems_fs_init_helper

  /*
   *  Initialize the base file system infrastructure.
   */

(6)编译指令(是否CONFIGURE_APPLICATION_DISABLE_FILESYSTEM:如果不disable):

rtems_filesystem_initialize

6.1从rtems_filesystem_root_configuration表中读取内容

rtems_filesystem_root_configuration表confdefs.h中配置,是rtems_filesystem_mount_configuration类型的

const rtems_filesystem_mount_configuration
      rtems_filesystem_root_configuration = {
      NULL,
      NULL,
      #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
        RTEMS_FILESYSTEM_TYPE_IMFS,
      #endif
      RTEMS_FILESYSTEM_READ_WRITE,
      #if defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM)
        &devFS_root_filesystem_data
      #else
        NULL
      #endif
    };

指定: source target = NULL 。说明是根目录且不使用设备文件

     FS的类型:DevFS,MINIIMFS,IMFS(default)

FS的读写性

用户传递的data


6.2 函数接着mount到 / 根目录,然后生成  /dev 目录。初始化装载文件系统就结束了。


Note:在(4)和(6)中如果条件判断disable成立(用户定义了不使用FS的话),就do nothing了

********************************************************************************************************************

1.嵌入式系统大多没有文件系统的,或者有文件系统,并不作为系统启动必须的话,应该不需要根文件系统了。那么,当需要文件系统的时候如何挂载上去?就像6.2那样自己产生一个根目录?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值