国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

應用筆記|Blue NRG-1/2系列芯片Flash操作與BLE事件的互斥處理

STM32單片機 ? 來源:未知 ? 2023-04-06 03:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

目錄預覽

1 引言

2 問題描述

3 解決辦法

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

5 小結

1. 引言

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

2. 問題描述

客戶經常反饋類似問題,諸如:當用戶程序嘗試將用戶定制數據寫入 Flash 中特定區域時,發現 BLE 射頻部分停止工作,或芯片直接死機了。

2.1. 原因分析

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

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

3.解決辦法

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

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

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

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

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

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

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

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

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

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

1. 初始化相關鏈表和初始化 radio 事件回調屏蔽。

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

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

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

3. 在主循環中調度。

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

4. 應用操作 Flash 調用接口

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

5. 小結

如果使用此方法中的 Flash 擦除,沒有任何 BLE 事件時,直接調用此方法不會執行任何 Flash 的操作。所以當沒有藍牙事件時,可以使用 SDK 默認的 Flash 訪問接口或者是手工調度函數,類似這樣: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系列芯片Flash操作與BLE事件的互斥處理的流程和步驟。由于文章篇幅有限僅展示部分信息,完整內容請點擊“閱讀原文”下載原文檔。

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

長按掃碼關注公眾號

更多資訊,盡在STM32

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


原文標題:應用筆記|Blue NRG-1/2系列芯片Flash操作與BLE事件的互斥處理

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


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

    關注

    6076

    文章

    45496

    瀏覽量

    670460
  • STM32
    +關注

    關注

    2309

    文章

    11162

    瀏覽量

    373480

原文標題:應用筆記|Blue NRG-1/2系列芯片Flash操作與BLE事件的互斥處理

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    【ESP32-C2系列】WT018684-S1/S1U模組產品介紹

    概述1特性01MCU內置ESP8684系列芯片,32位RISC-V單核處理器,支持高達120MHz的時鐘頻率576KBROM272KBSRAM(其中16KB專用于cache)SIPfl
    的頭像 發表于 01-28 18:19 ?614次閱讀
    【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模組產品介紹

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

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

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

    在許多基于 BlueNRG-1/2 系列芯片的低功耗藍牙的設計項目時,客戶通常會在 Flash的特定區域存儲定制的數據。然而需要特別注意的是
    發表于 01-09 10:54 ?0次下載

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

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

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

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

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

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

    藍牙打印機電路怎么設計?芯片如何選型?APP和小程序的BLE通訊協議如何制定?

    與藍牙芯片通訊的BLE協議怎么制定?藍牙BLE芯片如何選型?一文給你講解清楚
    的頭像 發表于 09-08 10:02 ?1185次閱讀
    藍牙打印機電路怎么設計?<b class='flag-5'>芯片</b>如何選型?APP和小程序的<b class='flag-5'>BLE</b>通訊協議如何制定?

    FLASH模擬EEPROM入門指南

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

    AS32X601芯片Flash擦寫調試技術解析

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

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

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

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

    我已經在CYW20829中編寫了一個BLE服務器程序。 當我使用 Python 腳本將其連接到我的計算機時,它可以達到 800 Kbps,該腳本生成使用 Bleak 的 BLE 客戶端,并使用筆記
    發表于 06-27 06:28

    GPDV6624C應用筆記1.0版

    電子發燒友網站提供《GPDV6624C應用筆記1.0版.pdf》資料免費下載
    發表于 06-06 17:20 ?0次下載

    兆易創新推出GD5F1GM9系列高速QSPI NAND Flash

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

    如何使用雙Flash固化FPGA

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