********************************************
编译Linux系统下的可执行NUTTX系统:
********************************************
1.给Linux系统安装gcc编译器;
2.将nuttx和app目录放到同一个子目录下面;
3.从nuttx/configs/sim/* 复制到nuttx目录下面;
4.如果系统是64位则不需要修改配置文件,否则则需要修改defconfig中的部分配置:
注释下面配置:
# CONFIG_HOST_X86_64 = y
使能下面配置:
CONFIG_HOST_X86=y
5:将defconfig文件名称变为 .configs/sim/*
6:在nuttx目录下面,运行make
7:通过./nuttx运行生成的目标程序
8:在nsh里面,输入poweroff来退出模拟程序;
9:默认情况下,应用程序所在分区是没有被挂载的,所以需要手动挂载一下:
mount -t binfs /bin
********************************************
示例程序的添加:
********************************************
如果想要打开更多的example程序,则需要修改defconfig文件;里面有很多CONFIG_EXAMPLES_***,
这些都与app/example下的示例相对应;
********************************************
自定义示例程序的添加(以名称为:mytest为例)
********************************************
1.在app/examples目录下面建立自已的程序的目录
2.目录下面至少有4个文件:
mytest_main.c ----主函数入口所在源文件;
Kconfig -------内核配置接口文件;
Make.defs -----将程序接入到系统的配置文件;
Makefile ------如果编译该程序的配置文件;
3.Kconfig文件如下:
config EXAMPLES_MYTEST
bool "\"Mytest!\" example"
default n
---help---
Enable the \"Mytest!\" example
if EXAMPLES_MYTEST
config EXAMPLES_MYTEST_PROGNAME
string "Program name"
default "mytest"
depends on BUILD_KERNEL
---help---
This is the name of the program that will be use when the NSH ELF
program is installed.
endif
4.Make.defs内容如下:
ifeq ($(CONFIG_EXAMPLES_MYTEST),y)
CONFIGURED_APPS += examples/mytest
endif
5.Makefile内容如下:
-include $(TOPDIR)/Make.defs
# Mytest! built-in application info
APPNAME = mytest
PRIORITY = SCHED_PRIORITY_DEFAULT
STACKSIZE = 1048
# mytest, World! Example
ASRCS =
CSRCS =
MAINSRC = mytest_main.c
CONFIG_EXAMPLES_MYTEST_PROGNAME ?= mytest$(EXEEXT)
PROGNAME = $(CONFIG_EXAMPLES_MYTEST_PROGNAME)
include $(APPDIR)/Application.mk
6:修改apps/examples目录下的Kconfig文件
添加一行:
source "$APPSDIR/examples/mytest/Kconfig"
以告诉内核来这里加载Kconfig文件;
7:在nuttx目录下的.config文件加入:
CONFIG_EXAMPLES_MYTEST=y
8:在nuttx目录下执行make命令;
********************************************
通过make menuconfig配置系统
********************************************
如果安装了kconfig-frontends工具包,则可以通过make menuconfig来对系统进行
自定义的配置;
阅读(2251) | 评论(0) | 转发(1) |