91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(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í),客戶(hù)通常會(huì)在 Flash的特定區(qū)域存儲(chǔ)定制的數(shù)據(jù)。然而需要特別注意的是,在 BlueNRG-1/2 方案中,用戶(hù)對(duì)Flash 的讀寫(xiě)操作必須在射頻空閑的情況下進(jìn)行,兩者是互斥的關(guān)系。本文檔描述Blue NRG-1/2系列芯片F(xiàn)lash操作與BLE事件的互斥處理的流程和步驟。

目錄預(yù)覽

1 引言

2 問(wèn)題描述

3 解決辦法

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

5 小結(jié)

1. 引言

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

2. 問(wèn)題描述

客戶(hù)經(jīng)常反饋類(lèi)似問(wèn)題,諸如:當(dāng)用戶(hù)程序嘗試將用戶(hù)定制數(shù)據(jù)寫(xiě)入 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 雖然提供了訪(fǎng)問(wèn) Flash 的示例代碼,但是當(dāng) Flash 操作比較多時(shí),與藍(lán)牙事件的互斥就比較難處理了;特別是對(duì)于一些多連接應(yīng)用或者同時(shí)用了主從、多種藍(lán)牙事件的場(chǎng)景,互斥就顯得更麻煩了。

3.解決辦法

使用一個(gè)雙向鏈表來(lái)管理 Flash 操作(Flash 擦除或者是 Flash 寫(xiě),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í)間片,把每次寫(xiě)或者擦除 Flash,用一個(gè)列表來(lái)管理,每 次寫(xiě)或者擦除操作,插入 Flash 操作鏈表的最后。在主循環(huán)中檢測(cè)是否有足夠的時(shí)間寫(xiě), 如果當(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è)置之后,重寫(xiě)函數(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ù)需要寫(xiě)入。在 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í)間滿(mǎn)足時(shí),則執(zhí)行相應(yīng)的 Flash 操作,然后將節(jié)點(diǎn)從任務(wù)列表中移除,回收到空閑列表中。

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

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

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 訪(fǎng)問(wèn)接口或者是手工調(diào)度函數(shù),類(lèi)似這樣: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)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guā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)注

    6076

    文章

    45495

    瀏覽量

    670439
  • STM32
    +關(guān)注

    關(guān)注

    2309

    文章

    11162

    瀏覽量

    373474

原文標(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)推薦
    熱點(diǎn)推薦

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

    概述1特性01MCU內(nèi)置ESP8684系列芯片,32位RISC-V單核處理器,支持高達(dá)120MHz的時(shí)鐘頻率576KBROM272KBSRAM(其中16KB專(zhuān)用于cache)SIPfl
    的頭像 發(fā)表于 02-04 18:20 ?153次閱讀
    【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ī)格書(shū)

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

    概述1特性01MCU內(nèi)置ESP8684系列芯片,32位RISC-V單核處理器,支持高達(dá)120MHz的時(shí)鐘頻率576KBROM272KBSRAM(其中16KB專(zhuān)用于cache)SIPfl
    的頭像 發(fā)表于 01-28 18:19 ?607次閱讀
    【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+通過(guò) KEIL 制作 QSPI 接口的外部 Flash 下載算法應(yīng)用筆記

    時(shí),需要將代碼或數(shù)據(jù)燒錄到外部 Flash。如果調(diào)試工具不能夠一鍵燒錄,勢(shì)必會(huì)給調(diào)試帶來(lái)諸多的麻煩。本文以 STM32H750 芯片為例,介紹通過(guò) 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í),客戶(hù)通常會(huì)在 Flash的特定區(qū)域存儲(chǔ)定制的數(shù)據(jù)。然而需要特別注意的是
    發(fā)表于 01-09 10:54 ?0次下載

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

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

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

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

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

    STM32C011 系列微控制器內(nèi)置 Flash 存儲(chǔ)器,支持程序存儲(chǔ)與數(shù)據(jù)保存,具備頁(yè)面擦除、雙字寫(xiě)入、讀寫(xiě)保護(hù)等功能。本文將簡(jiǎn)要介紹 STM32C011 的 Flash 結(jié)構(gòu)與特性,并通過(guò)實(shí)際代碼示例,講解
    的頭像 發(fā)表于 09-18 16:48 ?4922次閱讀
    STM32C011開(kāi)發(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 ?1184次閱讀
    藍(lán)牙打印機(jī)電路怎么設(shè)計(jì)?<b class='flag-5'>芯片</b>如何選型?APP和小程序的<b class='flag-5'>BLE</b>通訊協(xié)議如何制定?

    FLASH模擬EEPROM入門(mén)指南

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

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

    Flash 擦寫(xiě)操作流程,探討擦寫(xiě)過(guò)程中可能遭遇的挑戰(zhàn)及應(yīng)對(duì)策略,旨在為芯片應(yīng)用開(kāi)發(fā)者、硬件工程師等專(zhuān)業(yè)人士提供系統(tǒng)且詳實(shí)的參考資料,助力其精準(zhǔn)操控 AS32X601 芯片
    的頭像 發(fā)表于 07-22 13:47 ?759次閱讀
    AS32X601<b class='flag-5'>芯片</b><b class='flag-5'>Flash</b>擦寫(xiě)調(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中編寫(xiě)了一個(gè)BLE服務(wù)器程序。 當(dāng)我使用 Python 腳本將其連接到我的計(jì)算機(jī)時(shí),它可以達(dá)到 800 Kbps,該腳本生成使用 Bleak 的 BLE 客戶(hù)端,并使用筆記
    發(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次下載

    兆易創(chuàng)新推出GD5F1GM9系列高速Q(mào)SPI NAND Flash

    今日,兆易創(chuàng)新宣布推出GD5F1GM9系列高速Q(mào)SPI NAND Flash,該系列以其突破性的讀取速度和創(chuàng)新的壞塊管理(BBM)功能,可有效解決傳統(tǒng)SPI NAND
    的頭像 發(fā)表于 04-16 13:50 ?1433次閱讀

    如何使用雙Flash固化FPGA

    MES2L676-100HP開(kāi)發(fā)板(盤(pán)古100Pro+開(kāi)發(fā)板)采用紫光同創(chuàng)logos2系列FPGA,芯片型號(hào)為PG2L100H-6FBG67
    的頭像 發(fā)表于 04-14 09:52 ?1209次閱讀
    如何使用雙<b class='flag-5'>Flash</b>固化FPGA