準備 RT-Thread Smart 開發(fā)環(huán)境
主要按照 ART-Pi-Smart 官方用戶手冊進行開發(fā)環(huán)境的搭建:
1、通過ART-Pi-Smart SDK 倉庫 (Gitee)下載最新的 ART-Pi Smart SDK 軟件包。
2、通過用戶手冊中相關章節(jié)下載一下 Windows 版本的 arm-linux-musleabi 工具鏈,將解壓出來的 arm-linux-musleabi_for_i686-w64-mingw32 文件夾整個拷貝到 ./tools/gnu_gcc/ 下面,如圖:
3、裝一下 env 開發(fā)工具,這個不多說。
4、加載工具鏈,在 ART-Pi-Smart SDK 根目錄下打開 env 工具,依次運行命令:
smart-env.bat - 設置當前環(huán)境變量
set RTT - 查看環(huán)境變量信息,檢查交叉編譯器路徑是否成功添加
arm-linux-musleabi-gcc -v - 檢查交叉編譯器是否生效
結果應該顯示如下:
注意:每一次重新打開 env 工具都需要通過運行 ART-Pi-Smart SDK 根目錄下的 smart-env.bat 來設置當前環(huán)境變量,添加交叉編譯器路徑,否則編譯會出錯。
5、依據(jù) USB方式啟動 rt-smart 內核 章節(jié),下載 100ask_imx6ull 燒寫工具(由百問網(wǎng)提供)。
配置相關串口
需要使用串口來連接外部的藍牙 Controller 芯片,這里我們使用 “uart3”
1、在設置好環(huán)境的 env 工具下進入 kernelspimx6ull-artpi-smart 路徑,這個路徑下工程就是為 ART-Pi-Smart 做的 bsp 工程,也是 ART-Pi-Smart 上的rt-smart 內核工程。
2、運行 menuconfig 命令后,選擇進入 Platform Driver Configuration → Select UART Driver 目錄下進行 UART 設備的使能,這里使能 uart3 。
保存退出,接著下面章節(jié)配置 NimBLE。
在內核 bsp 下配置使用 NimBLE
env 工具還是進入 kernelspimx6ull-artpi-smart 路徑。
1、運行 menuconfig 命令后,進入 RT-Thread online packages → IoT - internet of things 目錄即可看到 NimBLE 軟件包,勾選軟件包
2、將 NimBLE 下 Controller Configuration 里的配置關閉
在 RT-Thread Smart 上 NimBLE 不需要運行 Controller ,使用 藍牙 Controller 芯片代替。
3、HCI Transport support 下配置 HCI uart 設備為 “uart2”(這里使用設備 uart2 正是對應之前 使能的 uart3,這里序號有出入和實際系統(tǒng)的設備管理有關,實際板上外設接口是 uart3 但是系統(tǒng)內核映射為 uart2 設備了)。
4、Bluetooth Samples 選擇 “BLE peripheral heartrate sensor” ;Version 選擇 “l(fā)atest”。最后如下圖所示:
目前支持以下幾個例程:
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
配置完成后保存。
編譯 & 連接外部藍牙芯片
1、在前面的 menuconfig 配置完成后,使用 pkgs --update 命令更新 NimBLE 軟件包
1$pkgs--update
2、運行 scons -c 清除之前的構建后,運行 scons 命令進行內核代碼的編譯。
3、編譯成功后, kernelspimx6ull-artpi-smart 路徑下會生成 rtthread.imx 文件。
4、把外部的藍牙 Control 芯片連接好,注意 UART 的引腳,這里使用 nrf52840dk 連接 ART-Pi-Smart 的 UART3。務必在后面內核燒寫的步驟前連接好 Control 芯片。關于藍牙控制器選擇可以參考 藍牙控制器固件 (或 NimBLE 軟件包目錄下 /docs/firmwares/README.md)。
燒寫內核 & 運行 NimBLE
windows 下燒寫內核的過程,按照文檔的相關章節(jié)(USB方式啟動 rt-smart 內核);連好兩根線后,應該可以用終端軟件打開其中一根串口線。
1、配置 ART-Pi Smart 開發(fā)板進入到 USB 固件下載模式
操作方法:開發(fā)板上電之后,先按下 “BOOT 啟動按鍵” 不松開,然后,再按下 “RST 復位鍵”,即可切換到 USB 固件下載模式
2、打開之前下載好的燒錄工具 100ask_imx6ull_flashing_tool.exe,顯示設備已連接即可。(顯示未連接則重復 1 中的操作)
3、選擇“專業(yè)版”,點擊第一排“固件/裸機”按鈕,選擇剛剛編譯出來的 rtthread.imx 文件(這里要注意絕對路徑里面不要包含中文和空格)。然后點擊 “運行” 按鈕即可,等待內核下載完畢。如下圖顯示:
4、內核燒寫完成后,不要按復位按鈕,這時候觀察終端,可以發(fā)現(xiàn)系統(tǒng)內核已經(jīng)跑起來了(如下圖)。
注意:如果按了復位按鈕,bootloader 則會默認加載固化在 emmc 中的出廠內核鏡像,就不是我們自己編譯的了
5、在系統(tǒng)命令行 輸入 ble_hr 命令,即可運行剛剛配置編譯進內核的 NimBLE 軟件包例程。
6、 使用 nRF Connect 手機 APP 即可成功觀察到藍牙設備,名稱為 blehr_sensor :
點擊連接后,在 CLIENT 下即可看到 Heart Rate 相關數(shù)據(jù)。
需要注意的地方
1、之前系統(tǒng)中 uart 設備編號與芯片 uart 接口編號不一致的問題:
menuconfig 中的 uart 配置和實際系統(tǒng)中 uart 對象名是不匹配的。實際使用時,系統(tǒng)中的 uart 序號應該減一。即 menuconfig 中的 uart1 對應 實際系統(tǒng)中的 uart0, menuconfig 中的 uart2 對應 實際系統(tǒng)中的 uart1。
2、一定要在 USB 燒寫內核步驟之前連接好外部的藍牙 Controller 芯片,否則燒寫完成后自動加載內核會出現(xiàn)斷言錯誤,因為對應串口沒接好。這時如果使用復位按鈕來重新加載內核,又會自動加載 emmc 中固化的出廠內核,就不是我們包含 NimBLE 的內核了。
3、針對 USB 燒寫內核只能加載一次的問題,應該可以使用之前的燒寫工具,將重新編譯的內核固化到 emmc 中,這樣就不用每次都重新燒寫了。
審核編輯:劉清
-
藍牙協(xié)議棧
+關注
關注
0文章
7瀏覽量
7201 -
RT-Thread
+關注
關注
31文章
1272瀏覽量
39922 -
gcc編譯器
+關注
關注
0文章
78瀏覽量
3363
原文標題:如何在 RT-Thread Smart 下使用 NimBLE 藍牙協(xié)議棧
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論