0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

介紹NimBLE軟件包在RT-Thread Smart下的使用

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來源:RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 作者:RT-Thread ? 2022-10-28 09:37 ? 次閱讀

準(zhǔn)備 RT-Thread Smart 開發(fā)環(huán)境

主要按照 ART-Pi-Smart 官方用戶手冊進(jìn)行開發(fā)環(huán)境的搭建:

1、通過ART-Pi-Smart SDK 倉庫 (Gitee)下載最新的 ART-Pi Smart SDK 軟件包。

2、通過用戶手冊中相關(guān)章節(jié)下載一下 Windows 版本的 arm-linux-musleabi 工具鏈,將解壓出來的 arm-linux-musleabi_for_i686-w64-mingw32 文件夾整個(gè)拷貝到 ./tools/gnu_gcc/ 下面,如圖:

3ac192ba-5608-11ed-a3b6-dac502259ad0.png

3、裝一下 env 開發(fā)工具,這個(gè)不多說。

4、加載工具鏈,在 ART-Pi-Smart SDK 根目錄下打開 env 工具,依次運(yùn)行命令:

smart-env.bat - 設(shè)置當(dāng)前環(huán)境變量

set RTT - 查看環(huán)境變量信息,檢查交叉編譯器路徑是否成功添加

arm-linux-musleabi-gcc -v - 檢查交叉編譯器是否生效

結(jié)果應(yīng)該顯示如下:

3afc141c-5608-11ed-a3b6-dac502259ad0.png

注意:每一次重新打開 env 工具都需要通過運(yùn)行 ART-Pi-Smart SDK 根目錄下的 smart-env.bat 來設(shè)置當(dāng)前環(huán)境變量,添加交叉編譯器路徑,否則編譯會(huì)出錯(cuò)。

5、依據(jù) USB方式啟動(dòng) rt-smart 內(nèi)核 章節(jié),下載 100ask_imx6ull 燒寫工具(由百問網(wǎng)提供)。

配置相關(guān)串口

需要使用串口來連接外部的藍(lán)牙 Controller 芯片,這里我們使用 “uart3”

1、在設(shè)置好環(huán)境的 env 工具下進(jìn)入 kernelspimx6ull-artpi-smart 路徑,這個(gè)路徑下工程就是為 ART-Pi-Smart 做的 bsp 工程,也是 ART-Pi-Smart 上的rt-smart 內(nèi)核工程。

2、運(yùn)行 menuconfig 命令后,選擇進(jìn)入 Platform Driver Configuration → Select UART Driver 目錄下進(jìn)行 UART 設(shè)備的使能,這里使能 uart3 。

3b9df098-5608-11ed-a3b6-dac502259ad0.png

保存退出,接著下面章節(jié)配置 NimBLE。

在內(nèi)核 bsp 下配置使用 NimBLE

env 工具還是進(jìn)入 kernelspimx6ull-artpi-smart 路徑。

1、運(yùn)行 menuconfig 命令后,進(jìn)入 RT-Thread online packages → IoT - internet of things 目錄即可看到 NimBLE 軟件包,勾選軟件包

3baf19e0-5608-11ed-a3b6-dac502259ad0.png

2、將 NimBLE 下 Controller Configuration 里的配置關(guān)閉

3bd86e62-5608-11ed-a3b6-dac502259ad0.png

在 RT-Thread Smart 上 NimBLE 不需要運(yùn)行 Controller ,使用 藍(lán)牙 Controller 芯片代替。

3、HCI Transport support 下配置 HCI uart 設(shè)備為 “uart2”(這里使用設(shè)備 uart2 正是對應(yīng)之前 使能的 uart3,這里序號有出入和實(shí)際系統(tǒng)的設(shè)備管理有關(guān),實(shí)際板上外設(shè)接口是 uart3 但是系統(tǒng)內(nèi)核映射為 uart2 設(shè)備了)。

3ccf80da-5608-11ed-a3b6-dac502259ad0.png

4、Bluetooth Samples 選擇 “BLE peripheral heartrate sensor” ;Version 選擇 “l(fā)atest”。最后如下圖所示:

3d4b43c8-5608-11ed-a3b6-dac502259ad0.png

目前支持以下幾個(gè)例程:

BLE peripheral heartrate sensor

BLE peripheral cycling speed and cadence sensor

BLE central role sample

BLE peripheral role sample

BLE beacon sample

BLE advertiser sample

配置完成后保存。

編譯 & 連接外部藍(lán)牙芯片

1、在前面的 menuconfig 配置完成后,使用 pkgs --update 命令更新 NimBLE 軟件包

1$pkgs--update

2、運(yùn)行 scons -c 清除之前的構(gòu)建后,運(yùn)行 scons 命令進(jìn)行內(nèi)核代碼的編譯。

3、編譯成功后, kernelspimx6ull-artpi-smart 路徑下會(huì)生成 rtthread.imx 文件。

3dcc26aa-5608-11ed-a3b6-dac502259ad0.png

4、把外部的藍(lán)牙 Control 芯片連接好,注意 UART 的引腳,這里使用 nrf52840dk 連接 ART-Pi-Smart 的 UART3。務(wù)必在后面內(nèi)核燒寫的步驟前連接好 Control 芯片。關(guān)于藍(lán)牙控制器選擇可以參考 藍(lán)牙控制器固件 (或 NimBLE 軟件包目錄下 /docs/firmwares/README.md)。

3e080080-5608-11ed-a3b6-dac502259ad0.png

燒寫內(nèi)核 & 運(yùn)行 NimBLE

windows 下燒寫內(nèi)核的過程,按照文檔的相關(guān)章節(jié)(USB方式啟動(dòng) rt-smart 內(nèi)核);連好兩根線后,應(yīng)該可以用終端軟件打開其中一根串口線。

1、配置 ART-Pi Smart 開發(fā)板進(jìn)入到 USB 固件下載模式

操作方法:開發(fā)板上電之后,先按下 “BOOT 啟動(dòng)按鍵” 不松開,然后,再按下 “RST 復(fù)位鍵”,即可切換到 USB 固件下載模式

2、打開之前下載好的燒錄工具 100ask_imx6ull_flashing_tool.exe,顯示設(shè)備已連接即可。(顯示未連接則重復(fù) 1 中的操作)

3、選擇“專業(yè)版”,點(diǎn)擊第一排“固件/裸機(jī)”按鈕,選擇剛剛編譯出來的 rtthread.imx 文件(這里要注意絕對路徑里面不要包含中文和空格)。然后點(diǎn)擊 “運(yùn)行” 按鈕即可,等待內(nèi)核下載完畢。如下圖顯示:

4009a7d0-5608-11ed-a3b6-dac502259ad0.png

4、內(nèi)核燒寫完成后,不要按復(fù)位按鈕,這時(shí)候觀察終端,可以發(fā)現(xiàn)系統(tǒng)內(nèi)核已經(jīng)跑起來了(如下圖)。

注意:如果按了復(fù)位按鈕,bootloader 則會(huì)默認(rèn)加載固化在 emmc 中的出廠內(nèi)核鏡像,就不是我們自己編譯的了

405b1c00-5608-11ed-a3b6-dac502259ad0.png

5、在系統(tǒng)命令行 輸入 ble_hr 命令,即可運(yùn)行剛剛配置編譯進(jìn)內(nèi)核的 NimBLE 軟件包例程。

40fc9242-5608-11ed-a3b6-dac502259ad0.png

6、 使用 nRF Connect 手機(jī) APP 即可成功觀察到藍(lán)牙設(shè)備,名稱為 blehr_sensor :

411ee284-5608-11ed-a3b6-dac502259ad0.png

點(diǎn)擊連接后,在 CLIENT 下即可看到 Heart Rate 相關(guān)數(shù)據(jù)。

4197edc8-5608-11ed-a3b6-dac502259ad0.png

需要注意的地方

1、之前系統(tǒng)中 uart 設(shè)備編號與芯片 uart 接口編號不一致的問題:

menuconfig 中的 uart 配置和實(shí)際系統(tǒng)中 uart 對象名是不匹配的。實(shí)際使用時(shí),系統(tǒng)中的 uart 序號應(yīng)該減一。即 menuconfig 中的 uart1 對應(yīng) 實(shí)際系統(tǒng)中的 uart0, menuconfig 中的 uart2 對應(yīng) 實(shí)際系統(tǒng)中的 uart1。

2、一定要在 USB 燒寫內(nèi)核步驟之前連接好外部的藍(lán)牙 Controller 芯片,否則燒寫完成后自動(dòng)加載內(nèi)核會(huì)出現(xiàn)斷言錯(cuò)誤,因?yàn)閷?yīng)串口沒接好。這時(shí)如果使用復(fù)位按鈕來重新加載內(nèi)核,又會(huì)自動(dòng)加載 emmc 中固化的出廠內(nèi)核,就不是我們包含 NimBLE 的內(nèi)核了。

3、針對 USB 燒寫內(nèi)核只能加載一次的問題,應(yīng)該可以使用之前的燒寫工具,將重新編譯的內(nèi)核固化到 emmc 中,這樣就不用每次都重新燒寫了。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 藍(lán)牙協(xié)議棧

    關(guān)注

    0

    文章

    7

    瀏覽量

    7192
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1261

    瀏覽量

    39839
  • gcc編譯器
    +關(guān)注

    關(guān)注

    0

    文章

    78

    瀏覽量

    3346

原文標(biāo)題:如何在 RT-Thread Smart 下使用 NimBLE 藍(lán)牙協(xié)議棧

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    送給工程師路上正迷茫的你:RT-Thread 軟件包構(gòu)建指南

    對應(yīng)的軟件包平臺(tái),軟件包生態(tài)對于一門語言的選擇至關(guān)重要,本次講座將會(huì)講述如何快速構(gòu)建一個(gè)可通用的軟件包,介紹RT-Thread可兼容的標(biāo)準(zhǔn),
    發(fā)表于 09-27 15:53

    介紹RT-Thread軟件包

    學(xué)習(xí)要點(diǎn)介紹 RT-Thread軟件包;簡介 nRF24L01 軟件包的使用,講解如何使用此軟件包將數(shù)據(jù)正確發(fā)送和接收;學(xué)習(xí)線程間的通信
    發(fā)表于 07-27 06:07

    使用menuconfig配置基于RT-ThreadNimBLE軟件包

    最近在學(xué)習(xí) RT-Thread 中的 NimBLE 軟件包,使用 menuconfig 配置選中 NimBLE 軟件包,設(shè)置各種選項(xiàng)后,成功
    發(fā)表于 06-27 11:18

    主要介紹NimBLE軟件包的使用說明

    NimBLE 使用說明本文主要介紹 NimBLE 軟件包的使用RT-Thread Studio 工程中配置使用 NimBLEBSP 下工程配
    發(fā)表于 08-18 10:22

    NimBLE軟件包在ART-Pi bsp工程的使用

    本文主要介紹 NimBLE 軟件包的在 ART-Pi bsp 工程的使用目前 NimBLE 支持 BLE Host 層,同時(shí) bsp 工程
    發(fā)表于 09-13 15:43

    RT-Thread Smart怎樣去使用NimBLE軟件包

    本文主要介紹 NimBLE 軟件包的在 RT-Thread Smart 的使用目前官方使用 A
    發(fā)表于 09-13 15:50

    RT-Thread 軟件包介紹

    RT-Thread 軟件包介紹軟件包的目的軟件包在高級語言中非常常見,很多高級語言都有對應(yīng)的軟件包
    發(fā)表于 05-21 19:38 ?5522次閱讀

    RT-Thread軟件包定義和使用

    RT-Thread軟件包是運(yùn)行于RT-Thread物聯(lián)網(wǎng)操作系統(tǒng)平臺(tái)上,面向不同應(yīng)用領(lǐng)域的通用軟件組件 。RT-Thread 同時(shí)提供了開放
    的頭像 發(fā)表于 05-21 11:29 ?1w次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>軟件包</b>定義和使用

    RT-Thread社區(qū)上有哪些優(yōu)秀的軟件包?

    SX12XX 軟件包是基于 semtech 官網(wǎng) Firmware Drivers V2.1.0代碼庫的移植實(shí)現(xiàn),目前只支持 SX1278 LoRa設(shè)備。該軟件包在原代碼庫功能的基礎(chǔ)上,對接 RT-Thread SPI 設(shè)備驅(qū)動(dòng)
    的頭像 發(fā)表于 04-03 15:35 ?7579次閱讀

    RT-Thread Smart已正式上線

    構(gòu)建或其他的構(gòu)建工具,例如xmake,cmake等,并對接 RT-Thread 在線軟件包;同時(shí)支持 POSIX,方便 Linux 應(yīng)用的移植。
    的頭像 發(fā)表于 11-29 10:31 ?2767次閱讀

    RT-Thread Smart 上手指南

    RT-Thread Smart(簡稱rt-smart)是基于RT-Thread操作系統(tǒng)衍生的新分支,面向帶MMU,中高端應(yīng)用的芯片,例如ARM Cortex-A系列芯片,MIPS...
    發(fā)表于 01-25 20:09 ?12次下載
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Smart</b> 上手指南

    2022 RT-Thread全球技術(shù)大會(huì):RT-Thread軟件包

    RT-Thread在2022年上半年新增幾十個(gè)軟件包:rtt-rust、LuatOS、gui-guider-demo。
    的頭像 發(fā)表于 05-27 14:12 ?1017次閱讀
    2022 <b class='flag-5'>RT-Thread</b>全球技術(shù)大會(huì):<b class='flag-5'>RT-Thread</b><b class='flag-5'>軟件包</b>

    RT-Thread全球技術(shù)大會(huì):RT-Thread Smart更好的兼容Linux生態(tài)

    RT-Thread全球技術(shù)大會(huì):RT-Thread Smart更好的兼容Linux生態(tài) ? ? ? ? ? ? 審核編輯:彭靜
    的頭像 發(fā)表于 05-27 14:31 ?1759次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術(shù)大會(huì):<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Smart</b>更好的兼容Linux生態(tài)

    RT-Thread文檔_RT-Thread SMP 介紹與移植

    RT-Thread文檔_RT-Thread SMP 介紹與移植
    發(fā)表于 02-22 18:31 ?9次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> SMP <b class='flag-5'>介紹</b>與移植

    RT-Thread中mymqtt軟件包的使用方法

    在上一篇文章 RT-Thread中Lan8720和lwip協(xié)議棧的使用的工程基礎(chǔ)上添加mymqtt軟件包。 使能mqtt example和mqtt test,保存,等待下載更新軟件包
    的頭像 發(fā)表于 10-13 10:44 ?896次閱讀
    <b class='flag-5'>RT-Thread</b>中mymqtt<b class='flag-5'>軟件包</b>的使用方法