genromfs的使用及nuttx下romfs制作
来源:互联网 发布:vb.net 正则表达式 编辑:程序博客网 时间:2024/06/15 03:03
前言
这篇文章仅仅是为了记录如何使用genromfs制作romfs然后在nuttx上直接应用,不会去详细介绍romfs的一系列特性
genromfs
首先去下载genromfs,也可去github上下载,我下载的是 0.5.2 26 Jun 2007 21:13这个版本;
下载下来后解压缩:
先来明确下我们的目的:
1.使用genromfs生成一个romfs;
2.编写一个nsh脚本,实现开机自动运行一个APP;
编写nsh脚本
#这里就实现一个之前编写好了的appecho echo "The script of start up."echo "author: <pengw>"echo "e-mail: <alvin1991@foxmail.com>"echo "h.vern: <v0.0.1.1318>"echo "s.vern: <v0.0.1.1141>"echo if motor_ctrl -sthen echo motor_ctrl start.else echo motor_ctrl start error.fi
制作romfs
创建一个文件夹romfs,在该文件夹下创建init.d文件夹,再在init.d文件夹下创建文件rcS,目录结构如下:
romfs
|——init.d
|——rcS
我们现在rcS文件中写入上面的脚本,然后开始制作:
终端进入到romfs目录下,执行下面的命令;
$ genromfs -f romfs.img -d romfs -v -V "romfs"0 romfs [0xffffffff, 0xffffffff] 37777777777, sz 0, at 0x0 1 . [0x804 , 0x141b49 ] 0040775, sz 0, at 0x20 1 .. [0x804 , 0x140e9e ] 0040775, sz 0, at 0x40 [link to 0x20 ]1 init.d [0x804 , 0x141af1 ] 0040775, sz 0, at 0x60 2 rcS [0x804 , 0x141b43 ] 0100664, sz 240, at 0x80 2 . [0x804 , 0x141af1 ] 0040775, sz 0, at 0x190 [link to 0x60 ]2 .. [0x804 , 0x141b49 ] 0040775, sz 0, at 0x1b0 [link to 0x20 ]
然后就会在文件夹目录下发现生成的romfs.img;
Nuttx系统中注册romfs文件系统,需要romfs文件系统头指针,以便将文件系统编译链接进可执行文件。所以,需要将romfs映像文件生成一个头文件。
Linux系统下的”xxd”工具命令能够将标准输入或者给定的二进制文件输出到文件或者标准输出。关于”xxd”工具命令的详细使用方法可以通过”xxd -h”或者”man xxd”命令查看。如果使用”-i”参数,”xxd”可以输出C语言头文件形式的文件。
我们以上节中生成的romfs映像文件制作一个c语言头文件,头文件名为nsh_romfsimg.h, 而头文件nsh_romfsimg.h中的数组名为romfs_img。命令如下:
$ xxd -i romfs.img nsh_romfsimg.h
然后就会得到对应的头文件:
nuttx运行实验
Nuttx系统在nsh_main线程中,通过调用nsh_initialize()函数,进而调用nsh_romfsetc()向系统注册romfs,并挂载到默认的位置”/etc”目录。
1.注意,nsh_romfsetc()需要配置CONFIG_NSH_ROMFSETC;
2.另外,也需要系统支持ROMFS,即CONFIG_FS_ROMFS文件系统选项需要启用。
根据自己脚本的需要决定是否去掉Disable if-then-else-fi和Disable loops
我们需要做的是生成romfs头文件,将其放置到系统的某个位置(默认位置为apps/nshlib目录,如果配置了CONFIG_NSH_ARCHROMFS,则放置到config/< board >/inlclude目录),重新编译系统。将生成的romfs头文件nsh_romfsimg.h放置到apps/nshlib目录,确保头文件nsh_romfsimg.h中数组名为”romfs_img”,重新编译下载系统,并运行。
到这里romfs制作的启动文件就完成了~
- genromfs的使用及nuttx下romfs制作
- genromfs
- Nuttx romfs与启动脚本rcS
- romfs
- 1.Linux环境下的Nuttx开发环境搭建
- px4原生源码学习-(3)--Nuttx实时操作系统的使用
- px4原生源码学习三--Nuttx实时操作系统的使用
- Nuttx的介绍
- Nuttx的启动
- wince romfs的一点讨论
- romfs的一个特别应用
- wince romfs的一点讨论
- nuttx配置说明及编译
- NuttX
- Linux下动态库和静态库的制作及使用
- Unix/Linux下静态函数库和动态函数库的制作及使用
- 学习补丁patch的制作及使用
- Android之点九图的制作及使用
- Android自定义Dialog顶部有条蓝色的线
- Cent OS 6_5(x86_64)下安装Oracle 11g
- 数据结构思维 第一章 接口
- HDFS分布式文件存储系统
- 在从1到n的正数中1出现的次数
- genromfs的使用及nuttx下romfs制作
- 奇妙的三维立体图
- hive udaf
- 使用队列实现栈
- hdu 1231
- 合并表记录
- 仿QQ左滑打开或删除
- NOIP模拟题 期望DP 礼物
- java内部类详载