一、准备工作
下载源码,代码目录结构如下:
其中nuttx和apps目录中的是nuttx源码目录,romfs_etc是用于生成指定启动脚本使用的目录,后续会做详细说明。
二、指定开发板
进入nuttx目录,输入指令./tools/configure.sh -l gd32f470zk-eval:netnsh
-l 指定开发主机系统为linux
gd32f470zk-eval为具体开发板
netnsh指定可以通过网络输入nuttx shell指令(同时串口也是具备此功能)
三、系统配置
完成第二步操作后,执行make menuconfig进行系统配置
1、网络环境配置
根据自己的网络环境进行配置开发板IP和网关地址
2、telnet配置
因为第二步中指定网络shell功能,所以需要打开telnet模块,在UI界面按 ‘/’ 键进行搜索
确认后会显示相关的配置项,需要开启的配置项有
NETDEV_TELNET,NETUTILS_TELNETD,NSH_TELNET,NSH_TELNET_LOGIN,SYSTEM_TELNETD
具体怎么配置在搜索界面都有引导,细节可结合自己需求调整
3、romfs配置
开启romfs模块可以实现通过启动脚本来启动应用,在UI界面按 ‘/’ 键进行搜索
确认后会显示相关的配置项,需要开启的配置项有
ETC_ROMFS,FS_ROMFS,FS_ROMFS_CACHE_NODE
具体怎么配置在搜索界面都有引导,细节可结合自己需求调整
在配置ETC_ROMFS时需根据开发板硬件条件调整图中红色框中的值,不建议太大,不然资源不足会导致挂载失败
4、fatfs配置
在启动脚本中执行挂载相关动作,故需要支持文件系统,此处指定为fatfs
退出保持
四、定制启动脚本
帮助文档路径:nuttx/Documentation/guides/etcromfs.rst
1、将启动脚本模版(nuttx/include/arch/board/rc.sysinit.template, nuttx/include/arch/board/rcS.template)复制到romfs_etc目录下,然后可按自己的需要进行修改脚本中的内容
2、在nuttx目录下执行
./tools/mkromfsimg.sh ./ XXX/romfs_etc/rc.sysinit.template XXX/romfs_etc/rcS.template
其中XXX为具体路径,须填写完整路径
3、执行完后会在nuttx目录下生成一份etc_romfs.c,将此文件复制到nuttx/boards/arm/gd32f4/gd32f470zk-eval/src/目录下
五、编译
在nuttx路径下执行make,编译完成后生成nuttx.bin和nuttx.hex,通过jlink将bin或者hex文件烧录到开发板上