Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
nimble_BLE协议栈
QEMU
原创征文
QEMU下运行NimBLE
1.00
发布于 2022-07-26 22:09:27 浏览:1243
订阅该版
[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 软件包,勾选软件包。 ![NimBLE.png](https://oss-club.rt-thread.org/uploads/20220726/279a2f81ec41d47d7c424ea5244f5c91.png.webp "NimBLE.png") 3、进入 Controller Configuration **关闭** NimBLE Controller 支持 ![NimBLE-Controller.png](https://oss-club.rt-thread.org/uploads/20220726/256e29e9ab33bf26c6fab250d93e7266.png "NimBLE-Controller.png") 在 RT-Thread 上 NimBLE 不需要运行 Controller ,使用 蓝牙 Control 芯片代替。 4、配置 NimBLE HCI 层支持,选择用于连接蓝牙 Control 芯片的串口吗,这里 The uart for HCI Transport 默认输入 "uart1" 就好。 ![NimBLE-HCI.png](https://oss-club.rt-thread.org/uploads/20220726/5f6da401a44c4f1411c4556421902061.png "NimBLE-HCI.png") 5、选择相应的蓝牙 App 例程 ![NimBLE-Sample.png](https://oss-club.rt-thread.org/uploads/20220726/ad456d3a6d490681835fc640513674da.png.webp "NimBLE-Sample.png") 这里选择 “BLE peripheral heartrate sensor” 即可。 6、选择软件包版本为 “latest”。 配置完成如下: ![NimBLE-Version.png](https://oss-club.rt-thread.org/uploads/20220726/86d4cace608315dea0ee29e5eb0062e3.png.webp "NimBLE-Version.png") 保存后退出。 ## 下载软件包 使用 `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 例程,实际运行现象如下: ![qemu-run.png](https://oss-club.rt-thread.org/uploads/20220726/ea09ff751effc11780dc4160bcd3fd18.png.webp "qemu-run.png") 使用 **nRF Connect** 手机 APP 即可成功观察到 qemu 程序发送的广播包,名称为 **blehr_sensor** , 点击连接后,在 CLIENT 下即可看到 Heart Rate 相关数据。 找到 blehr_sensor ![app.jpg](https://oss-club.rt-thread.org/uploads/20220726/695b0931d676a7153bcaaff622d22a58.jpg.webp "app.jpg") 连接 blehr_sensor 即可观察到相关信信息 ![app-connect.jpg](https://oss-club.rt-thread.org/uploads/20220726/c5ab478d9210521791f9cdfa84b90208.jpg.webp "app-connect.jpg")
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
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
cubemx
PWM
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
出出啊
1518
个答案
343
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
813
个答案
177
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
出出啊
1
篇文章
5
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部