精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

應用筆記|Blue NRG-1/2系列芯片F(xiàn)lash操作與BLE事件的互斥處理

STM32單片機 ? 來源:未知 ? 2023-04-06 03:10 ? 次閱讀

在許多基于 BlueNRG-1/2 系列芯片的低功耗藍牙的設計項目時,客戶通常會在 Flash的特定區(qū)域存儲定制的數(shù)據(jù)。然而需要特別注意的是,在 BlueNRG-1/2 方案中,用戶對Flash 的讀寫操作必須在射頻空閑的情況下進行,兩者是互斥的關系。本文檔描述Blue NRG-1/2系列芯片F(xiàn)lash操作與BLE事件的互斥處理的流程和步驟。

目錄預覽

1 引言

2 問題描述

3 解決辦法

4 將上述方案加入客戶工程的步驟示例

5 小結

1. 引言

在許多基于 BlueNRG-1/2 系列芯片的低功耗藍牙的設計項目時,客戶通常會在 Flash 的特定區(qū)域存儲定制的數(shù)據(jù)。然而需要特別注意的是,在 BlueNRG-1/2 方案中,用戶對 Flash 的讀寫操作必須在射頻空閑的情況下進行,兩者是互斥的關系。

2. 問題描述

客戶經(jīng)常反饋類似問題,諸如:當用戶程序嘗試將用戶定制數(shù)據(jù)寫入 Flash 中特定區(qū)域時,發(fā)現(xiàn) BLE 射頻部分停止工作,或芯片直接死機了。

2.1. 原因分析

  • 2.1.1. BlueNRG-1/2 的 Flash 存儲應用數(shù)據(jù)時可能遇到這個問題。因為在擦除一頁的過程中,中斷會被關掉大概 20 多 ms, 在此期間,radio 中斷是被關掉了的,會導致整個radio 的狀態(tài)被延時或者整個 radio 部分的狀態(tài)被破壞。

  • 2.1.2. ST 的 SDK 雖然提供了訪問 Flash 的示例代碼,但是當 Flash 操作比較多時,與藍牙事件的互斥就比較難處理了;特別是對于一些多連接應用或者同時用了主從、多種藍牙事件的場景,互斥就顯得更麻煩了。

3.解決辦法

使用一個雙向鏈表來管理 Flash 操作(Flash 擦除或者是 Flash 寫,F(xiàn)lash 讀無需和 BLE 相關事件互斥),并使用一個雙向鏈表來管理空余時間狀態(tài)。在空余的時間執(zhí)行 Flash 操作。從芯片手冊可以知道,操作 Flash,特別是擦除時,會占用比較多的時間。為 了避免操作 Flash 占用過多的時間片,把每次寫或者擦除 Flash,用一個列表來管理,每 次寫或者擦除操作,插入 Flash 操作鏈表的最后。在主循環(huán)中檢測是否有足夠的時間寫, 如果當前空閑的時間足夠,取出 Flash 操作鏈表中最前的一個節(jié)點,執(zhí)行 Flash 操作,然 后將節(jié)點移除。對于如何檢測空閑時刻,也用一個鏈表來管理空閑時刻。具體思路如下:

第一步:初始化時需要設置 radio active 事件拋到應用。aci_hal_set_radio_activity_mask(0x0001|0x0002|0x0004|0x0008|0x0010|0x0020)

6249bf3c-d3e5-11ed-bfe3-dac502259ad0.png

第二步:設置之后,重寫函數(shù)aci_hal_end_of_radio_activity_event,當有事件觸發(fā)時, 就會進入這個函數(shù)。

6286e920-d3e5-11ed-bfe3-dac502259ad0.png

第三步:構造一個 Flash 操作調(diào)度函數(shù),每次進入這個函數(shù),生成一個空閑時刻的節(jié)點插 入到鏈表中。主循環(huán)中有個 Flash 操作的調(diào)度函數(shù),不停的調(diào)度是否有數(shù)據(jù)需要寫入。在 Flash 操作的調(diào)度函數(shù)中,主要做兩件事情,一個是把空閑時間計算出來給到底層的 Flash 操作鏈表調(diào) 度中。另一個是移除過期的節(jié)點。

62a69932-d3e5-11ed-bfe3-dac502259ad0.png

第四步:構造 flash_list_tick 函數(shù),flash_list_tick 函數(shù)主要是從 Flash 任務列表中去取節(jié) 點,當空余時間滿足時,則執(zhí)行相應的 Flash 操作,然后將節(jié)點從任務列表中移除,回收到空閑列表中。

62b7dbac-d3e5-11ed-bfe3-dac502259ad0.png

4.將上述方案加入客戶工程的步驟示例

1. 初始化相關鏈表和初始化 radio 事件回調(diào)屏蔽。

62d9a552-d3e5-11ed-bfe3-dac502259ad0.png

2. 在 aci_hal_end_of_radio_activity_event 中添加空閑鏈表的更新函數(shù)。

63122012-d3e5-11ed-bfe3-dac502259ad0.png

3. 在主循環(huán)中調(diào)度。

6337c2b8-d3e5-11ed-bfe3-dac502259ad0.png

4. 應用操作 Flash 調(diào)用接口

63518dce-d3e5-11ed-bfe3-dac502259ad0.png

5. 小結

如果使用此方法中的 Flash 擦除,沒有任何 BLE 事件時,直接調(diào)用此方法不會執(zhí)行任何 Flash 的操作。所以當沒有藍牙事件時,可以使用 SDK 默認的 Flash 訪問接口或者是手工調(diào)度函數(shù),類似這樣:flash_list_tick(~0u)

工程測試源碼參考附件壓縮包:

BlueNRG Flash vs BLE event handle source code.7z

工程路徑為:

BlueNRG_Demo/BlueNRG-1_2DK 3.1.0/Project/Supply/BLE_Chat_Master_Slave_WithFlashAccess/

本文檔描述Blue NRG-1/2系列芯片F(xiàn)lash操作與BLE事件的互斥處理的流程和步驟。由于文章篇幅有限僅展示部分信息,完整內(nèi)容請點擊“閱讀原文”下載原文檔。

636f2c58-d3e5-11ed-bfe3-dac502259ad0.png

長按掃碼關注公眾號

更多資訊,盡在STM32

點擊“閱讀原文”,可下載原文檔


原文標題:應用筆記|Blue NRG-1/2系列芯片F(xiàn)lash操作與BLE事件的互斥處理

文章出處:【微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6032

    文章

    44521

    瀏覽量

    633122
  • STM32
    +關注

    關注

    2266

    文章

    10873

    瀏覽量

    354853

原文標題:應用筆記|Blue NRG-1/2系列芯片F(xiàn)lash操作與BLE事件的互斥處理

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    TLC3702 TLC3704系列用筆記

    電子發(fā)燒友網(wǎng)站提供《TLC3702 TLC3704系列用筆記.pdf》資料免費下載
    發(fā)表于 09-20 09:14 ?0次下載
    TLC3702 TLC3704<b class='flag-5'>系列</b>應<b class='flag-5'>用筆記</b>

    互斥鎖和自旋鎖的實現(xiàn)原理

    保護共享資源不被多個線程同時訪問。它的實現(xiàn)原理主要包括以下幾個方面: 1. 鎖的初始化 互斥鎖在創(chuàng)建時需要進行初始化,通常包括設置鎖的狀態(tài)為“未鎖定”。在某些實現(xiàn)中,還需要初始化鎖的等待隊列,用于存儲等待鎖的線程。 2. 鎖的
    的頭像 發(fā)表于 07-10 10:07 ?412次閱讀

    芯海應用筆記:通用 MCU 基于 IAR 芯片包 IAR9 開發(fā)指南

    MCU 芯片。芯海科技基于 IAR 環(huán)境開發(fā)芯片包,給用戶更多的編譯選擇,提高用戶開發(fā)靈活性。本應用筆記芯片包結構、DEMO 例程下載使用、工程建立等角度出發(fā),詳細介紹 IAR
    發(fā)表于 05-16 11:52

    芯海應用筆記:通用 MCU IAR 開發(fā)指南

    集成的 IDE 工具,用戶可根據(jù)對應芯片型號的規(guī)格進行修改,僅供參考。*附件:應用筆記:芯海通用MCUMDK開發(fā)指南.pdf
    發(fā)表于 05-16 11:50

    芯海應用筆記:通用 MCU 基于 GCC 編譯開發(fā)應用

    客戶需要 GCC 開發(fā),需要增加相關的開發(fā)文件。本文檔中的代碼部分為 GCC 開發(fā)所需文件的模版,用戶可根據(jù)對應芯片型號的規(guī)格進行修改,僅供參考。*附件:應用筆記:芯海通用MCUGCC編譯支持開發(fā)指南.pdf
    發(fā)表于 05-16 11:47

    芯海應用筆記:通用 MCU Flash 讀寫保護和 SWD 復用指導手冊.

    本應用筆記旨在幫助用戶了解芯海科技通用 MCU Flash 讀寫保護的相關注意事項,同時針對 SWD引腳鎖復用提供解決方案。本文檔所涉及到的解決方案可適用于芯海通用 MCU 產(chǎn)品的常見相關需求。*附件:應用筆記:芯海通用MCUf
    發(fā)表于 05-16 11:44

    芯海通用 MCU 應用筆記 :CS32F103 系列 MCU IAP 升級指南

    本應用筆記旨在幫助指導用戶針對芯海 CORTEX-M3 MCU CS32F103 系列單片機 IAP 應用的快速開發(fā)。本應用筆記實現(xiàn)了 CAN 和 USART 兩種接口方式來開發(fā) IAP 應用,協(xié)議
    發(fā)表于 05-16 11:40

    芯海科技通用 MCU 應用筆記: CS32F103 FOC 電機評估板使用指南

    本文檔描述了基于芯海 CS32F103 系列芯片的矢量控制電機開發(fā)板 V1.00 的設計理念、結構和使用說明,以幫助用戶快速使用此開發(fā)板,評估 CS32F103 芯片在電機控制應用上的性能表現(xiàn)。*附件:應
    發(fā)表于 05-16 11:35

    芯海通用 MCU 應用筆記: CS32F03x 系列硬件設計指南

    本技術說明文檔提供關于 CS32F03x 系列 MCU 的電源,啟動引導配置,應用注意事項的說明,旨在幫助用戶更好地使用 CS32F03x 系列 MCU,進行芯海科技 CS32F03x 系列 MCU 應用產(chǎn)品的設計、開發(fā)和調(diào)試。
    發(fā)表于 05-16 11:32

    芯海通用 MCU 應用筆記: C32F03x 系列快速應用指南

    本應用筆記旨在指導用戶搭建 CS32F03x/F03x-RA 系列 MCU 開發(fā)環(huán)境并進行開發(fā)和調(diào)試,包括:軟件開發(fā)與移植、軟硬件注意事項、開發(fā)板說明、如何 Keil/IAR/GCC 下安裝 SDK
    發(fā)表于 05-16 11:29

    芯海科技應用筆記:CS32F0XX TIMER外設模塊指導

    本應用筆記旨在展示使用 CS32F0xx 微控器,針對定時器外設的應用。幫助用戶了解 CS32F0xx 定時器的基本特性、操作模式及相關應用的示例代碼。提供的一些高級應用以便縮短用戶開發(fā)周期。對所介
    發(fā)表于 05-16 10:52

    CSU18MX86應用筆記

    本應用筆記旨在為用戶提供關于CSU18MX86的詳細信息和使用指南,幫助用戶快速開發(fā)基于CSU18MX86的應用。*附件:CSU18MX86應用筆記_V1.0.pdf
    發(fā)表于 05-16 10:21

    BLUE-NRG-MS下載固件庫顯示失敗后連不上了怎么解決?

    最近使用ST的BLUE-nrg,下載固件庫下載失敗了,然后再使用GUI就一直鏈接不上了,使用和手機鏈接的程序也一直卡在更新 網(wǎng)上搜需要直接換芯片,有沒有遇到過的怎么解決
    發(fā)表于 05-10 07:49

    IEC61967-2芯片級RE測試應用筆記

    電子發(fā)燒友網(wǎng)站提供《IEC61967-2芯片級RE測試應用筆記.pdf》資料免費下載
    發(fā)表于 12-14 10:03 ?2次下載
    IEC61967-<b class='flag-5'>2</b><b class='flag-5'>芯片</b>級RE測試應<b class='flag-5'>用筆記</b>

    銳能微三相計量芯片用筆記

    三相計量芯片用筆記-RN8302C與RN8207D上電時序要求V1.0
    發(fā)表于 12-06 09:31 ?7次下載