nuttx想要添加自己写的一些小应用非常方便,具体的步骤如下:
1,在apps/examples/目录下添加自己的目录。
2,添加Kconfig, Makefile, Make.defs, 以及应用的源文件。
3,通过build.sh menuconfig去选择自己添加的app即可。
4,将编译好的版本下载到板子中,在nuttx shell试图下执行?回车即可看到自己添加的小应用。在shell下输入自己添加的小应用的名字回车既可运行程序。

首先我们如果想添加一些自己的小程序需要在apps/examples/目录下添加自己的app目录,以apps/examples/hello为例:
我们需要添加hello_main.c, Kconfig, Make.defs, Makefile这四个文件。

Kconfig的内容如下。

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#config EXAMPLES_HELLO      改名字是用来在defconfig中配置使用的。添加该配置之后,该应用会被打开。tristate "\"Hello, World!\" example"  这个是在menuconfig中看到的选项提示default n             默认是不打开---help---Enable the \"Hello, World!\" exampleif EXAMPLES_HELLO 如果打开该选项就进行下面的配置。config EXAMPLES_HELLO_PROGNAME      app的名字string "Program name"default "hello"---help---This is the name of the program that will be used when the NSH ELFprogram is installed.config EXAMPLES_HELLO_PRIORITY       设置栈的优先级int "Hello task priority"default 100config EXAMPLES_HELLO_STACKSIZE        设置栈的大小int "Hello stack size"default DEFAULT_TASK_STACKSIZEendif

Make.defs的内容如下。

############################################################################
# apps/examples/hello/Make.defs
# Adds selected applications to apps/ build
#
#   Copyright (C) 2015 Gregory Nutt. All rights reserved.
#   Author: Gregory Nutt <gnutt@nuttx.org>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in
#    the documentation and/or other materials provided with the
#    distribution.
# 3. Neither the name NuttX nor the names of its contributors may be
#    used to endorse or promote products derived from this software
#    without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
############################################################################ifneq ($(CONFIG_EXAMPLES_HELLO),)   需要注意该名字需要和Kconfig的一致性
CONFIGURED_APPS += $(APPDIR)/examples/hello           这个是hello这个app所在的目录。
endif

Makefile的内容:

############################################################################
# apps/examples/hello/Makefile
#
#   Copyright (C) 2008, 2010-2013 Gregory Nutt. All rights reserved.
#   Author: Gregory Nutt <gnutt@nuttx.org>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in
#    the documentation and/or other materials provided with the
#    distribution.
# 3. Neither the name NuttX nor the names of its contributors may be
#    used to endorse or promote products derived from this software
#    without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
############################################################################include $(TOPDIR)/Make.defs# Hello, World! built-in application infoPROGNAME  = $(CONFIG_EXAMPLES_HELLO_PROGNAME)  PROGNAME设置为在Kconfig中配置的名字
PRIORITY  = $(CONFIG_EXAMPLES_HELLO_PRIORITY)  优先级设置为Kconfig中的配置
STACKSIZE = $(CONFIG_EXAMPLES_HELLO_STACKSIZE) 栈大小设置为Kconfig给hello配置的大小
MODULE    = $(CONFIG_EXAMPLES_HELLO)           模块也是Kconfig中的配置名称# Hello, World! ExampleMAINSRC = hello_main.c         main src文件是hello.c文件include $(APPDIR)/Application.mk

hello_main.c的内容:

/***************************************************************************** Included Files****************************************************************************/#include <nuttx/config.h>        需要注意的一点是通常我们会在我们添加的app源文件的顶部添加该头文件的引用。
#include <stdio.h>/***************************************************************************** Public Functions****************************************************************************//***************************************************************************** hello_main****************************************************************************/int main(int argc, FAR char *argv[])
{printf("Hello, World!!\n");return 0;
}

nuttx app添加自己的小应用程序相关推荐

  1. iOS传感器开发——为APP添加手机密码、指纹进行安全验证

    iOS传感器开发--为APP添加手机密码.指纹进行安全验证 一.引言 iPhone5s之后,iPhone硬件上已支持进行指纹识别的功能,相应的,一些新的api也可以应用于APP中,进行用户安全的验证. ...

  2. HBuilder开发旅游类APP(三) ----- 给APP添加底部导航栏(底部选项卡)

    HBuilder开发旅游类APP(三) ----- 给APP添加底部导航栏(底部选项卡) 作者:班尼科 本博文是本人原创,喜欢请给我点赞,转载请注明出处哦. 标签: 旅游 HBuilder H5+ M ...

  3. android 将app添加进入文件的打开方式

    今天,简单讲讲android里如何将自己的app添加进入文件的打开方式. 最近因为换租房的原因,状态很不好.今天尝试写点android的代码的内容.其实很简单,我们只需在AndroidManifest ...

  4. macOS:给 app 添加摄像头权限

    macOS:给 app 添加摄像头权限 举例 macOS 10.15.x: macOS 11.x: 说 明: 举例 下面以微信为例说明: macOS 10.15.x: /usr/bin/sqlite3 ...

  5. 三、简单刷题APP(题库是Excel)之在APP添加题目

    在APP添加题目,其实就是获取文本框的内容后将数据添加进数据库中 熟悉使用数据库的,很简单就可以实现了,现在简单描述一下使用. 如图所示,在指定位置输入相应的数据即可,在框中选择正确答案,提交后,将数 ...

  6. Android 10.0 app添加校验锁(输入密码才能进入app)

    1.概述 最近有客户有需求要求给app添加锁,就是点击app 图标时,会弹出Dialog,需要输入密码才能进入app中,就是应用校验锁, 最开始想到在Launcher3中实现,但是如果更换了默认Lau ...

  7. 为 iOS APP 添加手机密码、指纹验证

    2019独角兽企业重金招聘Python工程师标准>>> 原文  http://my.oschina.net/u/2340880/blog/542221?fromerr=fpdpdLP ...

  8. 在stm32f103上运行nuttx,添加app和driver的流程

    以stm32f103的led(PC13)为例子 heyi@ubuntu:~/nuttx/heyi_1_nuttx/nuttx/tools$ ./configure.sh stm32f103-minim ...

  9. iOS App添加扩展App Extension

    主要参考文章 :  https://www.cnblogs.com/fengmin/p/6118592.html demo地址,里面额外添加了一个分享的扩展 :  https://github.com ...

最新文章

  1. Python 闭包、单个装饰器、多个装饰器、装饰器修饰类、应用场景
  2. 2015化妆品行业如何进行微信公众号营销
  3. PTA 基础编程题目集 7-18 二分法求多项式单根 C语言
  4. vue小项目总结与笔记【六】——使用axios发送ajax请求
  5. JavaScript封装方法,兼容参数类型为Number和String
  6. Xcode 4 with External Static Library for iPhone Development
  7. 使用vue开发一个双向展开的卷轴组件
  8. Atitit 外观ui调整法 表单与表格列表
  9. python可视化拖拽编程平台_PythonEditor可视化拼插编辑器:编程不用写代码,拖拖拽拽就可以!...
  10. hadoop源码编译(从0到1一步步教你如何编译,适用于任何hadoop版本)
  11. word选择粘贴没有html格式,Word选择性粘贴怎么用?Word设置无格式文本粘贴快捷键的方法...
  12. 余压监控系统在某高层住宅的应用方案
  13. github国内镜像站
  14. 爬虫(java+jsoup)
  15. 比子弹速度快十倍的导弹是怎么被拦截的?
  16. 工会组织计算机培训,泸州职业技术学院工会举办首届职工计算机培训班
  17. Cartographer分枝定界算法比喻理解
  18. 如何在eLance,oDesk或Guru.com等外包平台上赢得任何项目?
  19. 【软件测试】性能测试、负载测试、压力测试
  20. AD绘图中遇到的问题(集)

热门文章

  1. JavaScript实现点击网页出现飘字(一)
  2. 计算机主机硬件拆卸及安装步骤,怎样快速拆卸电脑主机
  3. 电脑桌面下面任务栏变宽了怎么恢复
  4. AndroidRNFlutter实战——防抖节流函数
  5. PDA扫码设备放置一会就休眠的解决办法
  6. win7系统下重启之后打印机服务就会自动停止的解决方法
  7. 2020蓝桥杯省赛填空题【卡片】
  8. (P32-P33)异常处理:Python标准异常总结,异常处理,raise
  9. SimpleFOC移植STM32(三)—— 角度读取 (AS5600、AS5047P、TLE5012B、MA730、MT6701、ABZ)
  10. khugrepaged挖矿病毒的处理