genromfs的使用及nuttx下romfs制作

2023-05-16

=====>我的博客目录导航

前言

这篇文章仅仅是为了记录如何使用genromfs制作romfs然后在nuttx上直接应用,不会去详细介绍romfs的一系列特性

genromfs

首先去下载genromfs,也可去github上下载,我下载的是 0.5.2 26 Jun 2007 21:13这个版本;
下载下来后解压缩:
这里写图片描述

先来明确下我们的目的:
1.使用genromfs生成一个romfs;
2.编写一个nsh脚本,实现开机自动运行一个APP;

编写nsh脚本

#这里就实现一个之前编写好了的app
echo 
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 -s
then
        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制作的启动文件就完成了~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

genromfs的使用及nuttx下romfs制作 的相关文章

  • nuttx和linux区别,Nuttx文件系统

    1 介绍 文件系统 xff0c 是对一个存储设备上的数据和元数据进行组织的机制 xff0c 它是操作系统管理持久性数据的子系统 xff0c 提供数据存储和访问功能 将一个文件系统与一个存储设备关联起来的过程叫做挂载 mount xff0c
  • nuttx-概述

    早期基于MSP430系列 STM32系列 EFM32系列 AT91SAM9X imx6ul系列做各种物联网产品 xff0c 近几年国芯片慢慢崛起 xff0c 加上ST芯片价格暴涨 xff0c 更是让国产芯片赢得了难得的发展机会 xff0c
  • NuttX 介绍

    xff08 嵌入式 实时操作系统 rtos nuttx 7 1 xff09 NuttX 介绍 转载请注明出处 xff1a http blog csdn net zhumaill article details 24197637 1 Nutt
  • PX4项目学习::(三)Nuttx操作系统

    50条消息 PX4代码解析 4 超级菜狗的博客 CSDN博客 px4代码解析
  • px4之nuttx操作系统编译

    nuttx 嵌入式操作系统 1 下载源码 https nuttx apache org download 分别下载app和os 下载完毕后 xff0c 解压两个压缩包 2 根据当前嵌入式的开发板子 xff0c 进行配置 span class
  • Nuttx驱动(一)简介

    第一次写Nuttx系统的驱动 xff0c 用惯了rt thread FreeRTOS等RTOS或裸机的驱动编写 写Nuttx驱动感觉好蹩脚 xff0c 顺便记录一下 xff08 by the way 先完成 xff0c 再完善 xff09
  • Nuttx驱动(二)实例

    接上一篇文章 xff0c 这篇主要是nuttx驱动编写实践部分 基础部分请移驾 Nuttx驱动 xff08 一 xff09 简介 Nuttx驱动例程 在该例程中 xff0c 假设有这么一个设备 xff1a 有3个IO输出和一个IO输入的RG
  • nuttx杂记

    1 设置自启动应用 修改deconfig文件下的 CONFIG INIT ENTRYPOINT 参数即可 2 消息队列使用 以下是Nuttx系统中使用queue create函数创建队列的示例代码 xff1a include lt stdi
  • 记录ubuntu18.04下搭建nuttx RTOS的过程

    官方参考链接 xff1a https nuttx apache org docs latest quickstart install html Getting started 61 61 gt Installing 主要记录一下按照链接指导
  • nuttx学习-0:模拟安装

    一 Nuttx 模拟运行环境的安装 xff1a 1 文件要求 xff0c 主要需要三个文件 xff1a nuttx 7 24 tar apps 7 24 tar nuttx tools tar 2 环境要求 xff1a sudo apt g
  • genromfs的使用及nuttx下romfs制作

    61 61 61 61 61 gt 我的博客目录导航 前言 这篇文章仅仅是为了记录如何使用genromfs制作romfs然后在nuttx上直接应用 xff0c 不会去详细介绍romfs的一系列特性 genromfs 首先去下载genromf
  • Nuttx下移植uorb笔记

    Nuttx下移植uorb笔记 之前接触过ros下的消息机制 xff08 生产者 消费者 xff09 模型 xff0c 第一感觉是灵活好用 xff0c 但是在资源有限的嵌入式环境里面 xff0c 邮箱 消息 显得就有点不那么灵活 xff0c
  • NuttX RTOS

    目录 综述 NuttX是什么 看看这些文件和功能 它怎么会是一个小小的操作系统呢 xff1f NuttX讨论组 你想谈谈NuttX的特性吗 xff1f 你需要帮助吗 xff1f 问题吗 错误吗 下载 我在哪里可以买到NuttX xff1f
  • NuttX 文件系统架构介绍(7.14)

  • Nuttx romfs与启动脚本rcS

    ARM系统上电后 xff0c 系统将flash地址映射到零地址处 xff0c 处理器从零地址处开始运行第一条指令 而在零地址处 xff0c 一般是系统复位中断向量 xff0c 此处存放的是一条跳转指指令 xff0c 通过该条换指令 xff0
  • nuttx操作系统的移植以及下载

    origin http blog csdn net seawolfe article details 70244672 1 在ubuntu根目录下 xff1a root 64 ubuntu apt get update 更新包 2 root
  • 认识romfs文件系统

    1 1 什么是romfs romfs 是一个只读文件系统 xff0c 主要用在 mainly for initial RAM disks of installation disks 使用romfs 文件系统可以构造出一个最小的内核 xff0
  • 5.0 NuttX File System

    转载请注明出处 xff1a 5 0 NuttX File System Alvin Peng的博客 CSDN博客 文章均出自个人理解 前言 前一段时间折腾了几个驱动 xff08 PWM Serial I2C xff09 xff0c 这次来折
  • esp32c3 nuttx 移植 micropython 尝试

    源码来自 https github com apache incubator nuttx apps pull 840 和 https github com apache incubator nuttx apps tree 787ac9060
  • 小米在建IoT护城河Vela NuttX

    MIDC 2020小米开发者大会刚刚过去 整场大会下来 几个印象比较深刻的点是 雷军宣布扩招5000名工程师 最新伸缩式大光圈镜头技术 小爱同学5 0发布 当然了 还有一个更加值得被提及的重点是 首次亮相的Xiaomi Vela物联网软件平

随机推荐

  • 使用百度轻量服务器LS遇到的一些小问题

    文章目录 简介1 一开始没有找到自己购买的实例在哪 2 购买的时候已经选中了应用镜像 xff0c 但是在系统里并没有看到已经部署好的LNMP环境 xff1f 3 默认的lnmp环境分别安装在哪个目录下 xff1f 4 如何修改 重置默认的M
  • PHP+JMeter模拟测试高并发场景。附代码。

    文章目录 1 建表2 编写模型类和控制器3 使用jmeter模拟高并发场景4 开始测试5 解决办法6 其他的测试高并发的工具 1 建表 新建商品表 span class token keyword CREATE span span clas
  • windows下解决vscode使用npm install时,没有权限的问题。

    找到vscode安装目录 右键 属性 兼容性 勾选以管理员身份运行即可
  • 解决npm install的时候报错python27

    问题 xff1a Can t find Python executable python2 7 you can set the PYTHON env variable 首先网上百度了很多方法都不好使 如下 都不好使 xff01 管理员权限运
  • gitbash执行不了npm scripts命令

    git bash执行npm scripts中的命令会直接报错 node 不是内部或外部命令 xff0c 也不是可运行的程序 我的解决办法是执行以下命令即可 xff1a npm config set script span class tok
  • vue/multi-word-component-names

    解决方法一 xff1a vue config js中添加一行 xff08 这种方式试完还是有报错显示 xff0c 但是项目可以运行 xff09 span class token keyword const span span class t
  • 将sql文件导入数据库时,报错Data truncated for column

    解决办法 打开my span class token operator span ini配置文件 将sql model中的 span class token constant STRICT TRANS TABLES span 去掉
  • HTTP响应码&接口定义

    span class token number 100 span span class token operator 61 span span class token operator gt span 39 span class token
  • 3.1AP_HAL(APM的硬件抽象层)

    前言 前段时间梳理了PX4IO以及PX4FMU的类 xff0c 但是还是没真正上去梳理到硬件框架上去 xff0c 这次直接开始梳理AP HAL框架 xff0c 从根本上去认识pixhawk在硬件框架上的实现 xff1b namespace
  • vue-element-admin执行npm install时的一些报错。

    文章目录 1 首先在gitee上拉取的中文版2 执行npm install的一些报错3 参考文章 1 首先在gitee上拉取的中文版 git clone b i18n https gitee com panjiachen vue eleme
  • vue-element-admin 代码格式化问题

    本地clone了vue element admin项目 xff0c 但是前端两个空格的缩进看着很不爽 xff0c 为了解决这个问题 xff0c 可以进行如下操作 首先我本地vscode使用的是prettier格式化 xff0c pretti
  • MySQL批量插入指定位数的随机数并且可以指定条数。

    SQL脚本 xff1a span class token comment 首先创建一个生成随机位数的函数 span span class token keyword DELIMITER span span class token keywo
  • php usort函数解析

    语法 usort array amp array callable cmp function bool 执行过程 usort函数调用自定义的排序函数对数组进行排序 排序函数会比较数组中的两个元素 xff0c 并返回它们的大小关系 usort
  • 如何在一台windows主机上搭建mysql主从配置

    转自 xff1a http www cnblogs com yuechaotian archive 2013 05 15 3080056 html 1 首先要在本地建立两个mysql服务 xff08 首先正常使用安装包安装第一个 xff0c
  • php设计模式

    php 设计模式 转自 https www cnblogs com siqi archive 2012 09 09 2667562 html 1 单例模式 单例模式顾名思义 xff0c 就是只有一个实例 作为对象的创建模式 xff0c 单例
  • PHP八大设计模式

    PHP命名空间 转自http blog csdn net flitrue article details 52614599 reload 可以更好地组织代码 xff0c 与Java中的包类似 Test1 php span class php
  • DataTables 详细设置(1)

    转自http blog csdn net arsiya jerry article details 50505294 并不是所有的后台开发都有美工和前端工程师来配合做页面 xff0c 为了显示数据并有一定的美感 xff0c jQuery的D
  • dataTables-使用详细说明整理

    转自 http blog csdn net mickey miki article details 8240477 本文共四部分 xff1a 官网 基本使用 遇到的问题 属性表 一 xff1a 官方网站 xff1a http www dat
  • 关于Xshell过期,需要采购问题

    1 卸载电脑中过期的xshell 2 http www netsarang com download free license html 去官网下载免费版 Home amp School 家庭和学校版本 注意邮箱要填写正确 填写完提交后会收
  • genromfs的使用及nuttx下romfs制作

    61 61 61 61 61 gt 我的博客目录导航 前言 这篇文章仅仅是为了记录如何使用genromfs制作romfs然后在nuttx上直接应用 xff0c 不会去详细介绍romfs的一系列特性 genromfs 首先去下载genromf