日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一起学nRF51xx 18 -  蓝牙协议栈烧录

發布時間:2025/4/5 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一起学nRF51xx 18 -  蓝牙协议栈烧录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

前言

在講協議棧前我們先簡要介紹一下NORDIC公司的協議棧特點:

1 協議棧和應用程序代碼沒有鏈接時間依存性,并可獨立編譯和更新

2 堆棧受運行時保護,應用程序訪問受限或被阻止

3 堆棧為 100% 異步并由事件驅動,并向應用程序層提供線程安全管理程序調用 (SVC) 的應用程序接口

4 沒有專用的應用程序框架或 RTOS 依存性

?

nordic公司針對nrf51系列提供了s110,s120,s130,s210,s310等不同類型的SDK協議棧。

S110 SoftDevice

The S110 SoftDevice is a?Bluetooth??Low Energy?(BLE) peripheral protocol stack solution. It integrates a low energy controller and host, and provides a full and flexible Application Programming Interface (API) for building?Bluetooth Low Energy?System on Chip (SoC) solutions.

S110軟設備是Bluetooth?低功耗(BLE)外圍協議棧解決方案。它集成了一個低能耗控制器和主機,為構建藍牙芯片上低能耗系統(SoC)解決方案提供了一個完整、靈活的應用程序編程接口(API)。

S120 SoftDevice

The S120 SoftDevice is a?Bluetooth??Low Energy?(BLE) combined central and peripheral protocol stack solution, which means that the SoftDevice can be initialized to run either as a central protocol stack or as a peripheral protocol stack. When initialized as a Central, it supports up to eight simultaneous central role connections and an Observer. When initialized as a Peripheral, is supports a peripheral connection and a concurrent Broadcaster. The SoftDevice integrates a low energy controller and host, and provides a full and flexible Application Programming Interface (API) for building?Bluetooth Low Energy?System on Chip (SoC) solutions.

S120軟設備是藍牙?低功耗(BLE)中心和外圍協議棧的組合解決方案,這意味著可以初始化軟設備,使其既可以作為中心協議棧運行,也可以作為外圍協議棧運行。初始化為中心時,它最多支持8個同時的中心角色連接和一個觀察者。當初始化為外設時,它支持外設連接和并發廣播器。該軟設備集成了一個低能耗控制器和主機,為構建藍牙芯片上低能耗系統(SoC)解決方案提供了一個完整、靈活的應用程序編程接口(API)。

S130 SoftDevice

The S130 SoftDevice is a?Bluetooth??Low Energy?Peripheral protocol stack solution. The S130 SoftDevice integrates a?Bluetooth Low Energy?Controller and Host, and provides a full and flexible API for building?Bluetooth Low Energy?nRF51 System on Chip solutions.

S130軟設備是藍牙?低能耗外圍協議棧解決方案。S130軟設備集成了藍牙低能耗控制器和主機,為構建基于芯片的藍牙低能耗nRF51系統提供了完整、靈活的API。

S210 SoftDevice

The S210 SoftDevice is an ANT? protocol stack solution that provides a full and flexible Application Programming Interface (API) for building ANT System on Chip (SoC) solutions for the nRF51422 chip. The S210 SoftDevice simplifies combining the ANT protocol stack and an application on the same CPU.

S210 SoftDevice是一個ANT?協議棧解決方案,它為構建nRF51422芯片上的ANT系統(SoC)解決方案提供了完整和靈活的應用程序編程接口(API)。S210軟設備簡化了將ANT協議棧和同一CPU上的應用程序組合在一起的過程。

S310 SoftDevice

The S310 SoftDevice is a combined ANT? and?Bluetooth??Low Energy?(BLE) peripheral protocol stack solution. It provides a full and flexible Application Programming Interface (API) for building concurrent ANT and BLE System on Chip (SoC) solutions. The S310 SoftDevice simplifies combining an ANT or BLE protocol stack and an application on the same CPU, therefore eliminating the need for an added device to support concurrent multiprotocol.

S310軟設備是一個結合了ANT?和藍牙?低能耗(BLE)外圍協議棧的解決方案。它提供了一個完整和靈活的應用程序編程接口(API),用于構建并行的ANT和BLE系統芯片(SoC)解決方案。S310軟件設備簡化了將ANT或BLE協議棧與同一CPU上的應用程序組合在一起的過程,因此無需添加支持并發多協議的設備。

?

?

協議堆棧與APP在芯片中的FLASH與RAM的空間分布如下圖,不同的協議堆棧對具體實現的大小有所不同:

使用S110/S130對芯片存儲空間需求:

?

協議棧事件處理流程

協議棧通過軟中斷SWI2將底層事件(像是收到藍牙數據,鏈接成功,收到廣播之類的)上拋給app,app再捕獲自己感興趣的事件做相應的處理(比如收到鏈接成功事件后,記錄連接句柄),至于怎么捕獲,很簡單就是switchcase自己感興趣的事件。

?

應用程序使用API訪問協議棧資源(基于SVC)

應用程序通過使用_SVC(number)指令觸發異常進入協議棧SVC異常處理函數,并根據number調用協議棧中預先實現的底層協議處理函數。

?

Events&Callbacks,協議棧到應用程序的事件通知

協議棧收到底層數據做相應處理后,通過NVIC設置自定義的”SWI”中斷為Pending。之后處理器進入協議棧自定義的”SWI”中斷處理函數,將evt_id放入事件隊列后再執行應用程序中的“SWI中斷處理函數”。程序跳轉到應用程序處理函數后再取出依次取出事件并交由事件派發程序處理。事件派發程序將事件會傳給所有相關的服務和事件處理任務。

?

本例程將介紹NRF51822燒錄S130協議棧,并在燒錄S130協議棧基礎修改《一起學nRF51xx 17 -? lpcomp》的程序,使之在燒錄S130協議棧的芯片上可以正常運行。

?

?

示例詳解

基于硬件平臺:nrf51822ek_tm開發板。

本示例所用的最小系統板原理圖:

在正式開啟本節內容前,先給大家介紹如何用jlink結合jflash工具給來給NRF51822燒錄S130協議棧或帶S130協議棧的的完整程序:

?

?

步驟一:安裝J_FLASH-V612.exe 安裝包(見附件,可直接網上下載)。

安裝過程中,一直點NEXT,直到安裝完成即可。

?

步驟二:打開軟件。

在桌面開始菜單欄中。找到剛剛安裝的程序文件,單擊 j-Flash。

?

出現如下界面,選擇Create a new Project后點Start J-Flash:

在彈出的小對話框中按下圖選擇目標芯片型號:

然后OK,

再OK出現如下界面:

執行file->open data file 命令,打開附件中對應的s130_nrf51_2.0.0_softdevice.hex(s130協議棧)或experimental_ble_app_blinky_s130_pca10028.hex(s130協議棧加app程序),這里以后者為例:

執行Target->Connect命令連接開發板:

然后執行快捷鍵”F7”燒錄程序!

燒錄成功后執行快捷鍵”F9”啟動程序!

這個時后打開手機可藍牙,查找設備,可以看到出現Nordic_Blinky設備,

  • 同理如果僅想燒錄S130協議棧的話,對應的燒錄文件選s130_nrf51_2.0.0_softdevice.hex即可,下面修改《一起學nRF51xx 17 -? lpcomp》的程序,讓其可以在已燒錄協議棧的芯片正常運行,按下圖所示修改工程的IROM1和IRAM1的起始地址和大小,其它完全不變即可:
  • ?

    編譯后仿真程序,可以看到程序順利跳遠到mian函數上,同時對應的地址為0X0001B4A8,說明程序成功從協議棧跳轉到APP中。

    ?

    ????? 把程序編譯,將P01引腳與GND接觸然后松開,接觸松開….,可以看到串口助手中打印了以下輸出內容,可以知道,跳轉后的程序功能正常:

    關于nrf51xx及flash的更詳細介紹可以參看《nRF51822_PS_v3.3.pdf》或https://infocenter.nordicsemi.com/index.jsp。下一講我們將一起學習基于nordic的s130協議棧API接口編程。

    ?

    OK,本期實驗完成!下期見!同時如果大家有什么疑問或是有想了解的其它內容,也歡迎大家留言!!最后喜歡這個公眾號的同學們記得加關注了,會有不定期技術干貨推出!!

    文中源碼資料下載,在公眾號里給十三發消息:

    下載|一起學nRF51xx 18

    ?

    關注十三公眾號

    ?

    總結

    以上是生活随笔為你收集整理的一起学nRF51xx 18 -  蓝牙协议栈烧录的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。