色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

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

STM32單片機(jī) ? 來(lái)源:未知 ? 2023-04-06 03:10 ? 次閱讀

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

目錄預(yù)覽

1 引言

2 問(wèn)題描述

3 解決辦法

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

5 小結(jié)

1. 引言

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

2. 問(wèn)題描述

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

2.1. 原因分析

  • 2.1.1. BlueNRG-1/2 的 Flash 存儲(chǔ)應(yīng)用數(shù)據(jù)時(shí)可能遇到這個(gè)問(wèn)題。因?yàn)樵诓脸豁?yè)的過(guò)程中,中斷會(huì)被關(guān)掉大概 20 多 ms, 在此期間,radio 中斷是被關(guān)掉了的,會(huì)導(dǎo)致整個(gè)radio 的狀態(tài)被延時(shí)或者整個(gè) radio 部分的狀態(tài)被破壞。

  • 2.1.2. ST 的 SDK 雖然提供了訪問(wèn) Flash 的示例代碼,但是當(dāng) Flash 操作比較多時(shí),與藍(lán)牙事件的互斥就比較難處理了;特別是對(duì)于一些多連接應(yīng)用或者同時(shí)用了主從、多種藍(lán)牙事件的場(chǎng)景,互斥就顯得更麻煩了。

3.解決辦法

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

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

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

第二步:設(shè)置之后,重寫函數(shù)aci_hal_end_of_radio_activity_event,當(dāng)有事件觸發(fā)時(shí), 就會(huì)進(jìn)入這個(gè)函數(shù)。

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

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

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

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

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

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

1. 初始化相關(guān)鏈表和初始化 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. 應(yīng)用操作 Flash 調(diào)用接口

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

5. 小結(jié)

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

工程測(cè)試源碼參考附件壓縮包:

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)容請(qǐng)點(diǎn)擊“閱讀原文”下載原文檔。

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

長(zhǎng)按掃碼關(guān)注公眾號(hào)

更多資訊,盡在STM32

點(diǎn)擊“閱讀原文”,可下載原文檔


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

文章出處:【微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


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

    關(guān)注

    6037

    文章

    44561

    瀏覽量

    635589
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10901

    瀏覽量

    356196

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

文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    S32K3系列汽車級(jí)MCU應(yīng)用筆記

    電子發(fā)燒友網(wǎng)站提供《S32K3系列汽車級(jí)MCU應(yīng)用筆記.docx》資料免費(fèi)下載
    發(fā)表于 12-30 15:43 ?0次下載

    S32K3xxICU應(yīng)用筆記

    S32K3xxICU應(yīng)用筆記
    發(fā)表于 12-30 15:38 ?0次下載

    TLC3702 TLC3704系列應(yīng)用筆記

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

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

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

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

    MCU 芯片。芯??萍蓟?IAR 環(huán)境開(kāi)發(fā)芯片包,給用戶更多的編譯選擇,提高用戶開(kāi)發(fā)靈活性。本應(yīng)用筆記芯片包結(jié)構(gòu)、DEMO 例程下載使用、工程建立等角度出發(fā),詳細(xì)介紹 IAR
    發(fā)表于 05-16 11:52

    芯海應(yīng)用筆記:通用 MCU IAR 開(kāi)發(fā)指南

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

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

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

    芯海應(yīng)用筆記:通用 MCU Flash 讀寫保護(hù)和 SWD 復(fù)用指導(dǎo)手冊(cè).

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

    芯海通用 MCU 應(yīng)用筆記 :CS32F103 系列 MCU IAP 升級(jí)指南

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

    芯??萍纪ㄓ?MCU 應(yīng)用筆記: CS32F103 FOC 電機(jī)評(píng)估板使用指南

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

    芯海通用 MCU 應(yīng)用筆記: CS32F03x 系列硬件設(shè)計(jì)指南

    本技術(shù)說(shuō)明文檔提供關(guān)于 CS32F03x 系列 MCU 的電源,啟動(dòng)引導(dǎo)配置,應(yīng)用注意事項(xiàng)的說(shuō)明,旨在幫助用戶更好地使用 CS32F03x 系列 MCU,進(jìn)行芯??萍?CS32F03x 系列 MCU 應(yīng)用產(chǎn)品的設(shè)計(jì)、開(kāi)發(fā)和調(diào)試。
    發(fā)表于 05-16 11:32

    芯海通用 MCU 應(yīng)用筆記: C32F03x 系列快速應(yīng)用指南

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

    芯??萍紤?yīng)用筆記:CS32F0XX TIMER外設(shè)模塊指導(dǎo)

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

    CSU18MX86應(yīng)用筆記

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

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

    最近使用ST的BLUE-nrg,下載固件庫(kù)下載失敗了,然后再使用GUI就一直鏈接不上了,使用和手機(jī)鏈接的程序也一直卡在更新 網(wǎng)上搜需要直接換芯片,有沒(méi)有遇到過(guò)的怎么解決
    發(fā)表于 05-10 07:49
    主站蜘蛛池模板: 思思99精品国产自在现线| 亚洲.欧美.中文字幕在线观看| 夜月视频直播免费观看| 精品亚洲国产熟女福利自在线 | 免费看成人毛片| gogo亚洲肉体艺术照片9090| 日本毛片久久国产精品| 国产精自产拍久久久久久蜜| 野花视频在线观看免费最新动漫| 蜜桃无码AV视频在线观看| 港台三级大全| 一品道门免费高清视频| 欧美日韩精品久久久免费观看| 国产精品第3页| 影音先锋 av天堂| 日韩精品无码久久一区二区三| 国产午夜亚洲精品理论片八戒 | 日本二区三区欧美亚洲国| 国产欧美日韩亚洲第一页| 中文国产乱码在线人妻一区二区 | 国模沟沟一区二区三区| 92国产精品午夜免费福利视频| 少妇高潮A片特黄久久精品网| 黑人干肥婆| 帝王被大臣们调教高肉| 孕妇泬出白浆18P| 污到湿的爽文免费阅读| 男人舔女人的阴部黄色骚虎视频| 国产精品一区二区欧美视频| 97成人免费视频| 亚洲精品另类有吗中文字幕| 强奷乱码欧妇女中文字幕熟女| 精品国产90后在线观看| 成年黄网站免费大全毛片| 云南14学生真实初次破初视频 | 人妖操女人| 快播最新电影网站| 国产亚洲精品网站在线视频 | 91免费网站在线看入口黄| 亚洲国产在线2020最新| 日韩亚洲视频一区二区三区|