NUTTX的模拟环境的编译和调试:
由于开发团队硬件资源紧张,因此大家调试时可以使用模拟器来进行一些任务的开发和调试
参考nuttx-7.17\configs\sim\readme.txt介绍的操作方法:
1.进入nuttx-7.17/tools文件夹,执行 ./configure.sh sim/nsh
$ cd /home/user/nuttx-7.17/tools && ./configure.sh sim/nsh
2. 进入nuttx-7.17目录下,加载环境变量;
source setenv.sh
检查.config文件,因为本机Linux系统LINUX_X86_64系统,所以确认配置如下
CONFIG_HOST_LINUX=y
CONFIG_HOST_WINDOWS=n
CONFIG_HOST_X86=n
CONFIG_HOST_X86_64=y
CONFIG_SIM_X8664_MICROSOFT=n
CONFIG_SIM_X8664_SYSTEMV=y
CONFIG_SIM_M32=n
说明:上述配置是自动生成的,用户无需修改;
3. 执行make 编译整个工程
cd /home/user/nuttx-7.17 && make
4.生成当前linux系统下可以执行的nuttx程序,
在ubuntu系统下,编译好的nuttx(位于nuttx-7.17/nuttx)实际上是应用程序(有点类似虚拟机),执行执行./nuttx执行即可
./nuttx
启动会提示输入用户名和PASSWORD,默认的用户名和密码定义在.config中
CONFIG_NSH_MOTD_STRING="MOTD:username=admin password=Administrator"
输入用户明和密码后可以登录至NSH的界面。
说明:
在编译Nuttx模拟器时,原本打算使用make lc_preconfig BOARD=sim APP=nsh进行配置,发现配置时出现了错误,定位下来是由于
文件/nuttx-7.17/configs/sim/nsh/setenv.sh 最前面量行SHELL脚本存在问题导致,参考samv7xult/nsh目录下的setenv.sh进行适当修改,即可解决上述问题,当然用户也可以原始的编译方式进行配置和编译;
# if [ "$(basename $0)" = "setenv.sh" ] ; then #注释掉此行内容
if [ "$_" = "$0" ] ; then #添加这一行
echo "You must source this script, not run it!" 1>&2
exit 1
fi