output
目录下编译生成的elf文件,并执行program;烧录完成后请断开连接并进行断电,再重新上电即可正常运行。此时,通过串口连接开发板,可查看运行日志并进行 Shell 命令交互VCOS SIM(模拟器)提供了一种无需目标硬件平台,可直接在Ubuntu环境上运行配置好的Docker镜像进行仿真调试。目前使用模拟器可以测试VCOS的许多特性,包括调度表,中断,以太通信等
注意:VCOS SIM 强依赖linux-gnu-gcc编译器,Ubuntu下通常有自带的linux-gnu-gcc,如果没有安装,需要执行以下命令安装
sudo apt update
sudo apt install gcc
可以通过gcc --version
验证安装,如果输出版本号表示安装成功
下载vcos_sim Docker镜像,解压vcos_sim.tar.7z.001
得到vcos_sim.tar
导入Docker镜像的tar包
docker load -i vcos_sim.tar
启动vcos_sim Docker容器,Docker与Ubuntu系统共享目录,方便直接调试
docker run -it --cap-add=NET_ADMIN --device=/dev/net/tun --name vcos_sim -v /home:/home vcos_sim /bin/bash &
检查容器是否成功启动
docker ps -a
执行以上命令,可以在进程中看到vcos_sim
进入vcos_sim镜像
docker exec -it vcos_sim /bin/bash
vcos_sim镜像成功启动以后,可以在Linux系统的vscode中安装Docker和Dev Containers插件
在vscode中通过安装的插件连接vcos_sim容器,即可在vscode中进行调试
在vscode中打开haloosspace文件夹
在工程编译章节,已经详细介绍了如何完成编译,支持在开发板上运行。rt_demo运行在VCOS SIM虚拟仿真环境上,需要切换到haloosspace/vcos/build
目录,执行以下命令编译生成镜像文件:
python vcos_build.py -app_name rt_demo -board_name E3650_DEV_KIT -compiler gcc -maketool ninja -sim 1 -all
cd ./output/rt_demo_E3650_DEV_KIT_gcc_sim
./rt_demo
当前模拟器已集成虚拟串口功能模块,若宿主机存在虚拟串口,则console基于虚拟串口实现,即需要通过串口工具打开虚拟串口与模拟器进行交互,否则console将基于标准输入与标准输出实现,即可直接在终端与模拟器交互。 Docker环境中已基于socat创建两对虚拟串口,分别是/dev/vttyS0、/dev/vttyM0与/dev/vttyS1、/dev/vttyM1。由于当前代码实现中,模拟器与/dev/vttyS0绑定,需使用串口工具打开/dev/vttyM0与模拟器进行交互。
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/output/rt_demo_E3650_DEV_KIT_gcc_sim/rt_demo",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Ignore SIGUSR1",
"text": "handle SIGUSR1 nostop noprint pass",
"ignoreFailures": true
}
]
},
]
}
模拟器运行时,可在终端或串口工具看到nsh提示符,推荐使用poweroff命令退出:
nsh> poweroff
若没有通过poweroff命令退出,后台会残留相关进程,可使用以下命令强制退出:
pkill nuttx
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。