Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
nimble_BLE协议栈
QEMU
原创征文
QEMU下运行NimBLE
1.00
发布于 2022-07-26 22:09:27 浏览:1327
订阅该版
[tocm] NimBLE 可在 QEMU 环境下搭配蓝牙 Control 芯片运行,目前在 Ubuntu 18.04 下运行成功。 ## QEMU 环境搭建 主要参考 [在 Ubuntu 平台开发 RT-Thread](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/application-note/setup/qemu/ubuntu/an0005-qemu-ubuntu?id=在-ubuntu-平台开发-rt-thread) 文档中步骤搭建 qemu 环境。 **注意**:若 scons 版本低于 v4.0.1,需要手动安装 scons,步骤如下: ```shell git clone -b 4.0.1 https://github.com.cnpmjs.org/SCons/scons.git cd scons sudo python3 setup.py install ``` ## 配置 NimBLE 软件包 1、在 qemu-vexpress-a9 BSP 根目录输入: ```shell scons --menuconfig ``` 2、进入 RT-Thread online packages → IoT - internet of things 目录即可看到 NimBLE 软件包,勾选软件包。  3、进入 Controller Configuration **关闭** NimBLE Controller 支持  在 RT-Thread 上 NimBLE 不需要运行 Controller ,使用 蓝牙 Control 芯片代替。 4、配置 NimBLE HCI 层支持,选择用于连接蓝牙 Control 芯片的串口吗,这里 The uart for HCI Transport 默认输入 "uart1" 就好。  5、选择相应的蓝牙 App 例程  这里选择 “BLE peripheral heartrate sensor” 即可。 6、选择软件包版本为 “latest”。 配置完成如下:  保存后退出。 ## 下载软件包 使用 `scons --menuconfig` 命令后会安装及初始化 Env 工具,并在 home 目录下面生成 “.env” 文件夹,此文件夹为隐藏文件夹,切换到 home 目录,使用 `ls` 命令可查看所有目录和文件。 ``` $ ls ~/.env env.sh local_pkgs packages tools ``` 运行 env.sh 会配置好环境变量,让我们可以使用 `pkgs` 命令来更新软件包,执行 ``` $ source ~/.env/env.sh ``` 使用 `pkgs --update` 命令下载 NimBLE 软件包到 BSP 目录下的 packages 文件夹里。 ``` $ pkgs --update ``` ## 编译与运行 1、在 qemu-vexpress-a9 BSP 目录下输入 `scons` 命令编译工程,等待编译完成会生成 rtthread.bin 文件。 2、连接蓝牙 Control 芯片(使用 nrf52840dk 进行演示,将其 JLink 接口连接电脑),关于蓝牙控制器选择可以参考 [蓝牙控制器固件](https://github.com/RT-Thread-packages/nimble/tree/master/docs/firmwares) (或 NimBLE 软件包目录下 /docs/firmwares/README.md)。 **注意:**如使用 nrf52840dongle 及类似的蓝牙控制器,还需要参考 [QEMU 环境运行 BLE](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/application-note/setup/qemu/qemu-ble/qemu_ble?id=qemu-环境运行-ble) 进行环境搭建,并运行。 3、在 qemu-vexpress-a9 BSP 目录下执行以下命令运行 qemu 虚拟机,将 rt-thread 跑起来: ```shell qemu-system-arm -M vexpress-a9 -smp cpus=2 -kernel rtthread.bin -nographic -sd sd.bin -serial mon:stdio -serial /dev/ttyACM0 ``` **注意:** “/dev/ttyACM0” 可以按照实际连接时串口设备名进行调整。 4、rt-thread 启动后,在 msh 命令行输入 `ble_hr` 命令即可运行 BLE 例程,实际运行现象如下:  使用 **nRF Connect** 手机 APP 即可成功观察到 qemu 程序发送的广播包,名称为 **blehr_sensor** , 点击连接后,在 CLIENT 下即可看到 Heart Rate 相关数据。 找到 blehr_sensor  连接 blehr_sensor 即可观察到相关信信息 
2
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
Leno_yan
这家伙很懒,什么也没写!
文章
10
回答
0
被采纳
0
关注TA
发私信
相关文章
1
Linux下的Qemu mini2440虚拟机(32位和64位)
2
有qemu Linux的rt-thread开发环境建立吗?
3
qemu+mini2440+bootloader问题
4
QEMU gdbstub 在Win7下的bug
5
请教如何在windows下使用qemu测试rrt0.31中的例子
6
QEMU运行os问题
7
QEMU-mini2440 模拟环境上运行RT-thread这篇
8
在Ubuntu上执行qemu的configure命令checkzlib失败
9
求大舅:telnet-连接QEMU时,QEMU segmentation fault 结束
10
RealTouch打算出QEMU模拟器吗
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
I2C_IIC
cubemx
ESP8266
WIZnet_W5500
UART
ota在线升级
BSP
PWM
flash
packages_软件包
freemodbus
潘多拉开发板_Pandora
ADC
GD32
定时器
flashDB
编译报错
keil_MDK
socket
中断
rt_mq_消息队列_msg_queue
Debug
ulog
SFUD
msh
C++_cpp
at_device
本月问答贡献
聚散无由
9
个答案
6
次被采纳
RTT_逍遥
7
个答案
2
次被采纳
a1012112796
5
个答案
2
次被采纳
加缪
2
个答案
2
次被采纳
踩姑娘的小蘑菇
9
个答案
1
次被采纳
本月文章贡献
wake_mirco
2
篇文章
7
次点赞
mushroom
1
篇文章
9
次点赞
张世争
1
篇文章
7
次点赞
RTT_逍遥
1
篇文章
5
次点赞
Jack_____
1
篇文章
5
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部