日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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ī) ? 來源:未知 ? 2023-04-06 03:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

目錄預(yù)覽

1 引言

2 問題描述

3 解決辦法

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

5 小結(jié)

1. 引言

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

2. 問題描述

客戶經(jīng)常反饋類似問題,諸如:當(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è)問題。因?yàn)樵诓脸豁摰倪^程中,中斷會(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 雖然提供了訪問 Flash 的示例代碼,但是當(dāng) Flash 操作比較多時(shí),與藍(lán)牙事件的互斥就比較難處理了;特別是對于一些多連接應(yīng)用或者同時(shí)用了主從、多種藍(lán)牙事件的場景,互斥就顯得更麻煩了。

3.解決辦法

使用一個(gè)雙向鏈表來管理 Flash 操作(Flash 擦除或者是 Flash 寫,F(xiàn)lash 讀無需和 BLE 相關(guān)事件互斥),并使用一個(gè)雙向鏈表來管理空余時(shí)間狀態(tài)。在空余的時(shí)間執(zhí)行 Flash 操作。從芯片手冊可以知道,操作 Flash,特別是擦除時(shí),會(huì)占用比較多的時(shí)間。為 了避免操作 Flash 占用過多的時(shí)間片,把每次寫或者擦除 Flash,用一個(gè)列表來管理,每 次寫或者擦除操作,插入 Flash 操作鏈表的最后。在主循環(huán)中檢測是否有足夠的時(shí)間寫, 如果當(dāng)前空閑的時(shí)間足夠,取出 Flash 操作鏈表中最前的一個(gè)節(jié)點(diǎn),執(zhí)行 Flash 操作,然 后將節(jié)點(diǎn)移除。對于如何檢測空閑時(shí)刻,也用一個(gè)鏈表來管理空閑時(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ì)算出來給到底層的 Flash 操作鏈表調(diào) 度中。另一個(gè)是移除過期的節(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 擦除,沒有任何 BLE 事件時(shí),直接調(diào)用此方法不會(huì)執(zhí)行任何 Flash 的操作。所以當(dāng)沒有藍(lán)牙事件時(shí),可以使用 SDK 默認(rèn)的 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)容請點(diǎn)擊“閱讀原文”下載原文檔。

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

長按掃碼關(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)載請注明出處。


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

    關(guān)注

    6078

    文章

    45601

    瀏覽量

    674201
  • STM32
    +關(guān)注

    關(guān)注

    2313

    文章

    11196

    瀏覽量

    374801

原文標(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)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    使用JL杰理AC696N開發(fā)板實(shí)現(xiàn)PC模式下讀取外掛SPI Flash虛擬為U盤的具體案例操作說明_V1.0

    使用JL杰理AC696N開發(fā)板實(shí)現(xiàn)PC模式下讀取外掛SPI Flash虛擬為U盤的具體案例操作說明 引言 做杰理藍(lán)牙音頻系列芯片開發(fā)時(shí),經(jīng)常遇到產(chǎn)品需要外掛
    發(fā)表于 04-18 00:04

    C8051F330/1/2/3/4/5系列MCU:混合信號(hào)ISP Flash MCU的卓越之選

    C8051F330/1/2/3/4/5系列MCU:混合信號(hào)ISP Flash MCU的卓越之選 在電子設(shè)計(jì)領(lǐng)域,選擇一款合適的微控制器(MCU)對于項(xiàng)目的成功至關(guān)重要。C8051F33
    的頭像 發(fā)表于 04-15 11:30 ?205次閱讀

    【ESP32-C2系列】WT018684-S1/S1U模組規(guī)格書

    概述1特性01MCU內(nèi)置ESP8684系列芯片,32位RISC-V單核處理器,支持高達(dá)120MHz的時(shí)鐘頻率576KBROM272KBSRAM(其中16KB專用于cache)SIPfl
    的頭像 發(fā)表于 02-04 18:20 ?349次閱讀
    【ESP32-C<b class='flag-5'>2</b><b class='flag-5'>系列</b>】WT018684-S<b class='flag-5'>1</b>/S<b class='flag-5'>1</b>U模組規(guī)格書

    【ESP32-C2系列】WT018684-S1/S1U模組產(chǎn)品介紹

    概述1特性01MCU內(nèi)置ESP8684系列芯片,32位RISC-V單核處理器,支持高達(dá)120MHz的時(shí)鐘頻率576KBROM272KBSRAM(其中16KB專用于cache)SIPfl
    的頭像 發(fā)表于 01-28 18:19 ?1069次閱讀
    【ESP32-C<b class='flag-5'>2</b><b class='flag-5'>系列</b>】WT018684-S<b class='flag-5'>1</b>/S<b class='flag-5'>1</b>U模組產(chǎn)品介紹

    LAT1198+通過 KEIL 制作 QSPI 接口的外部 Flash 下載算法應(yīng)用筆記

    時(shí),需要將代碼或數(shù)據(jù)燒錄到外部 Flash。如果調(diào)試工具不能夠一鍵燒錄,勢必會(huì)給調(diào)試帶來諸多的麻煩。本文以 STM32H750 芯片為例,介紹通過 KEIL制作 QSPI 接口的外部 Flash 下載算法的方法。
    發(fā)表于 01-11 17:25 ?0次下載

    LAT1216 Blue NRG-1/2 系列芯片 Flash 操作BLE 事件的互斥處理

    在許多基于 BlueNRG-1/2 系列芯片的低功耗藍(lán)牙的設(shè)計(jì)項(xiàng)目時(shí),客戶通常會(huì)在 Flash的特定區(qū)域存儲(chǔ)定制的數(shù)據(jù)。然而需要特別注意的是
    發(fā)表于 01-09 10:54 ?0次下載

    廣州唯創(chuàng)電子WT588F02系列Flash語音芯片:可重復(fù)擦寫與高效能音頻解決方案

    讓智能設(shè)備擁有“可定制的聲音”,Flash存儲(chǔ)技術(shù)實(shí)現(xiàn)語音內(nèi)容自由更換在智能設(shè)備功能日益豐富的今天,語音交互已成為提升用戶體驗(yàn)的關(guān)鍵要素。廣州唯創(chuàng)電子推出的WT588F02系列Flash語音
    的頭像 發(fā)表于 09-28 08:05 ?658次閱讀
    廣州唯創(chuàng)電子WT588F02<b class='flag-5'>系列</b><b class='flag-5'>Flash</b>語音<b class='flag-5'>芯片</b>:可重復(fù)擦寫與高效能音頻解決方案

    一個(gè)硬件SPI兩個(gè)CS操作兩個(gè)norflash,怎么互斥操作兩個(gè)norflash?

    一個(gè)硬件SPI兩個(gè)CS操作兩個(gè)norflash,怎么互斥操作兩個(gè)norflash,有一個(gè)norflash被模擬成U盤,會(huì)在中斷中操作spi。
    發(fā)表于 09-26 06:18

    STM32C011開發(fā)(3)----Flash操作

    STM32C011 系列微控制器內(nèi)置 Flash 存儲(chǔ)器,支持程序存儲(chǔ)與數(shù)據(jù)保存,具備頁面擦除、雙字寫入、讀寫保護(hù)等功能。本文將簡要介紹 STM32C011 的 Flash 結(jié)構(gòu)與特性,并通過實(shí)際代碼示例,講解
    的頭像 發(fā)表于 09-18 16:48 ?5348次閱讀
    STM32C011開發(fā)(3)----<b class='flag-5'>Flash</b><b class='flag-5'>操作</b>

    藍(lán)牙打印機(jī)電路怎么設(shè)計(jì)?芯片如何選型?APP和小程序的BLE通訊協(xié)議如何制定?

    與藍(lán)牙芯片通訊的BLE協(xié)議怎么制定?藍(lán)牙BLE芯片如何選型?一文給你講解清楚
    的頭像 發(fā)表于 09-08 10:02 ?1427次閱讀
    藍(lán)牙打印機(jī)電路怎么設(shè)計(jì)?<b class='flag-5'>芯片</b>如何選型?APP和小程序的<b class='flag-5'>BLE</b>通訊協(xié)議如何制定?

    FLASH模擬EEPROM入門指南

    充足空閑空間。 錯(cuò)誤處理:在讀寫函數(shù)中增加邊界檢查(如地址有效性驗(yàn)證)和操作失敗重試機(jī)制。 中斷與電源管理:在寫入過程中禁用低功耗模式,防止電壓波動(dòng)導(dǎo)致寫入失敗。 總的來說,FLASH模擬EEPROM
    發(fā)表于 08-14 06:13

    AS32X601芯片Flash擦寫調(diào)試技術(shù)解析

    Flash 擦寫操作流程,探討擦寫過程中可能遭遇的挑戰(zhàn)及應(yīng)對策略,旨在為芯片應(yīng)用開發(fā)者、硬件工程師等專業(yè)人士提供系統(tǒng)且詳實(shí)的參考資料,助力其精準(zhǔn)操控 AS32X601 芯片
    的頭像 發(fā)表于 07-22 13:47 ?947次閱讀
    AS32X601<b class='flag-5'>芯片</b><b class='flag-5'>Flash</b>擦寫調(diào)試技術(shù)解析

    BlueNRG-1 OTA卡在PROGRAMMING,進(jìn)度一直為0是怎么回事?

    采用的是手機(jī) ST BLUE DFU APP + bluenrg-1小系統(tǒng)板,使用的是OTA service manager framework 模式,DK包使用的是DBlueNRG-1_2 DK
    發(fā)表于 07-18 08:20

    使用不同的Bluetooth?適配器時(shí),BLE速率較慢怎么解決?

    我已經(jīng)在CYW20829中編寫了一個(gè)BLE服務(wù)器程序。 當(dāng)我使用 Python 腳本將其連接到我的計(jì)算機(jī)時(shí),它可以達(dá)到 800 Kbps,該腳本生成使用 Bleak 的 BLE 客戶端,并使用筆記
    發(fā)表于 06-27 06:28

    GPDV6624C應(yīng)用筆記1.0版

    電子發(fā)燒友網(wǎng)站提供《GPDV6624C應(yīng)用筆記1.0版.pdf》資料免費(fèi)下載
    發(fā)表于 06-06 17:20 ?0次下載
    固镇县| 乐清市| 右玉县| 若尔盖县| 郸城县| 竹山县| 科尔| 丹寨县| 汤阴县| 浑源县| 蓝山县| 嵊泗县| 丰顺县| 铁岭市| 井冈山市| 永胜县| 德保县| 体育| 怀远县| 察隅县| 长寿区| 伊春市| 乌恰县| 安顺市| 永济市| 太保市| 郎溪县| 克什克腾旗| 鸡泽县| 巴中市| 石首市| 英吉沙县| 台安县| 乐安县| 迁安市| 察雅县| 松原市| 台湾省| 北碚区| 额尔古纳市| 谷城县|