基於 MS RTOS 的 NIMBLE 開發平台

2021-10-25 07:22:41 字數 2271 閱讀 7522

軟體環境:本平台的嵌入式作業系統為 ms-rtos, ble 協議為 nimble (1.3.0)

硬體平台:nrf52832

當前平台版本:iot studio 0.9.10

硬體連線如下:

所需硬體:

系統 bsp 支援功能:

用於除錯的 uart0 驅動;

藍芽協議棧所用的 radio、rng、rtc0 、timer0 驅動;

ms-rtos 使用 systick 做為系統時基;

剩餘外設未使用,可自定義應用場景。

ble 支援功能:

gap broadcaster,占用 flash 約 142 kb,消耗 ram 約 44 kb

gap observer,占用 flash 約 165 kb,消耗 ram 約 44 kb

gap peripheral,占用 flash 約 142 kb,消耗 ram 約 44 kb

gap central,占用 flash 約 160 kb,消耗 ram 約 44 kb

gatt 伺服器,占用 flash 約 159 kb,消耗 ram 約 44 kb

gatt 客戶端,占用 flash 約 162 kb,消耗 ram 約 45 kb

2、將庫中的 /nrf52832_nimble 資料夾做為完整的工程匯入 iot studio。

上述兩個步驟執行完畢後,則可以在此基礎上進行自定義的藍芽應用開發,下面將講解一些示例應用的實際執行步驟。

當開發藍芽應用時,我們必須在nimble_startup() 中啟動 nimble 協議棧,並執行自定義的藍芽**。

注意!函式名必須是nimble_startup

因為在 ms-rtos 系統啟動過程中,會呼叫該函式。在啟動檔案中,已經宣告了乙個空的弱函式,這個弱函式可以被自定義的函式取代。如下:

注意!自定義的nimble_startup()不能阻塞。否則 ms-rtos 系統啟動不了

紅框中的不需要改動,只在 nrf52832_hal.mk 檔案中新增箭頭所指的 .c 檔案即可, 其路徑即是該檔案在工程中的路徑,該 .c 檔案包含nimble_startup()。

我們必須保證藍芽應用在nimble_startup() 中執行,這個自定義的nimble_startup() 將會取代啟動過程中的nimble_startup() 被晶元執行:

紅框中的不需要改動,只需要修改需要編譯的 .c 檔案,即包含nimble_startup() 的檔案及其呼叫的原始檔。

紅框中的不需要改動,只需要修改需要編譯的 .c 檔案,即包含nimble_startup() 的檔案及其呼叫的原始檔。

紅框中的不需要改動,只需要修改需要編譯的 .c 檔案,即包含nimble_startup() 的檔案及其呼叫的原始檔。

紅框中的不需要改動,只需要修改需要編譯的 .c 檔案,即包含nimble_startup() 的檔案及其呼叫的原始檔.

不需要包含 phy.c。

紅框中的不需要改動,只需要修改需要編譯的 .c 檔案,即包含nimble_startup() 的檔案及其呼叫的原始檔.

基於IP,基於port和基於網域名稱的三種

1 基於相同ip不同port的虛擬主機 2 將listen欄位改為 listen 80 listen 8888 以上設定表示使用80以及8888埠 3 更改虛擬主機部分為 documentroot var www html website1 documentroot var www html web...

基於函式的索引 建立基於函式的索引

基於函式的索引 1基於函式的索引是常規的b樹索引。2該索引存放的資料是由表中的資料應用函式後得到的,而不是直接存放表中的資料本身。3如果查詢條件包含與索引相同的函式,就可以使用基於函式的索引,提高查詢速度 舉例 測試表 create table student2 sno varchar2 10 pr...

基於Token的認證和基於宣告的標識

openid解決跨站點的認證問題,oauth解決跨站點的授權問題。認證和授權是密不可分的。而openid和oauth這兩套協議出自兩個不同的組織,協議上有相似和重合的之處,所以想將二者整合有些難度。好在openid connect作為openid的下一版本,在oauth 2.0的協議基礎上進行擴充套...