1. 搭建NuttX开发环境

任务目标

在Ubuntu 22.04/24.04上完成NuttX开发环境搭建,包括必要系统包、工具链与NuttX源码获取,最终编译通过sim模拟器目标,生成可执行文件nuttx。

环境依赖

  • Ubuntu 22.04或24.04(x86_64)
  • 已安装git、make、gcc、g++
  • 网络可访问GitHub与Apache仓库

安装步骤

执行以下命令安装NuttX编译所需的系统包与工具链:

# 系统依赖
sudo apt update
sudo apt install -y bison flex gettext texinfo libncurses5-dev libncursesw5-dev \
  gperf automake libtool pkg-config build-essential genromfs libgmp-dev \
  libmpc-dev libmpfr-dev liblzma-dev libz-dev unzip python3 python3-pip

# kconfig-frontends(NuttX菜单配置工具)
cd /tmp
git clone https://bitbucket.org/nuttx/tools.git nuttx-tools
cd nuttx-tools/kconfig-frontends
./configure --enable-mconf
make -j$(nproc)
sudo make install
sudo ldconfig

获取源码与编译

# 创建NuttX工作目录
mkdir -p ~/nuttxspace && cd ~/nuttxspace

# 克隆核心仓库
git clone https://github.com/apache/nuttx.git
git clone https://github.com/apache/nuttx-apps.git apps

# 配置sim目标(模拟器)
cd nuttx
make distclean
./tools/configure.sh sim:ostest

# 编译
make -j$(nproc)

验证方法

编译成功后,在~/nuttxspace/nuttx/目录下会生成可执行文件nuttx。运行以下命令验证模拟器可正常启动:

./nuttx

预期输出:模拟器启动后显示NuttX Shell提示符nsh>,输入help可查看支持的命令列表。若看到nsh>提示符,说明环境搭建成功,sim目标编译与运行均正常。

常见问题

  • kconfig-frontends编译失败:确认已安装libncurses5-dev与libncursesw5-dev,若仍失败可尝试sudo apt install gperf后重试。
  • make时提示缺少genromfs:执行sudo apt install genromfs安装后重新make。
  • sim目标运行无输出:确认终端支持ANSI转义序列,或使用screen/tmux运行./nuttx。