Silicon Labs(亦稱“芯科科技”)針對(duì)旗下藍(lán)牙無(wú)線解決方案發(fā)布的Gecko SDK和藍(lán)牙協(xié)議棧SDK會(huì)定期更新,通常是每月更新一次,包括主要版本、小修改版本和補(bǔ)丁版本。這些更新包含重要的bug修復(fù)、新特性,有時(shí)還會(huì)添加對(duì)最新硬件平臺(tái)(新部件或新開發(fā)板)的支持。本文討論了用戶在將新的SDK版本下載到本地電腦后,如何更新現(xiàn)有開發(fā)的藍(lán)牙項(xiàng)目,以幫助工程師加速設(shè)計(jì)流程。
1.下載新版SDK當(dāng)您下載帶有新的主版本號(hào)或副版本號(hào)的SDK(例如,從v2.6.2更新到v2.7.0)時(shí),將在您的電腦上創(chuàng)建一個(gè)新的SDK文件夾,從那里您可以選擇在創(chuàng)建新項(xiàng)目時(shí)使用哪個(gè)SDK。您已經(jīng)存在的項(xiàng)目將不會(huì)被觸動(dòng)。 與此相反,當(dāng)您將補(bǔ)丁下載到計(jì)算機(jī)時(shí),它將自動(dòng)覆蓋您現(xiàn)有的SDK內(nèi)容。例如,Gecko SDK v2.7.3將在下載時(shí)覆蓋Gecko SDKv2.7.2?,F(xiàn)在,如果您創(chuàng)建了一個(gè)新項(xiàng)目,它將使用新的補(bǔ)丁版本創(chuàng)建。但是,您已經(jīng)存在的項(xiàng)目仍然會(huì)包含來(lái)自上一個(gè)補(bǔ)丁版本的文件。這是因?yàn)楫?dāng)您創(chuàng)建一個(gè)項(xiàng)目時(shí),SDK文件將在項(xiàng)目創(chuàng)建期間復(fù)制到項(xiàng)目中,并且SDK更新不會(huì)觸及您已經(jīng)創(chuàng)建的項(xiàng)目。(這是為了避免自動(dòng)更新已經(jīng)在早期補(bǔ)丁版本中測(cè)試過(guò)的項(xiàng)目。) 下載并啟用Silicon Labs的藍(lán)牙SDKhttps://www.silabs.com/documents/public/training/wireless/getting-started-bluetooth-sdk.pdf 2.更新已有的藍(lán)牙項(xiàng)目如果你想更新一個(gè)已經(jīng)存在的項(xiàng)目,有以下兩個(gè)辦法:
用新的SDK創(chuàng)建一個(gè)新的SoC-Empty項(xiàng)目,并合并通過(guò)前版本SDK所生成的SoC-Empty項(xiàng)目上做的所有更改。
替換現(xiàn)有項(xiàng)目中的所有SDK文件。
通常,我們強(qiáng)烈建議采用第一種方式,因?yàn)轫?xiàng)目生成器會(huì)負(fù)責(zé)復(fù)制所有文件,并完成最新SDK版本運(yùn)行所需的所有配置。 3. 使用新創(chuàng)建的SoC-Empty項(xiàng)目進(jìn)行更新建議在編寫藍(lán)牙應(yīng)用程序時(shí),將應(yīng)用程序文件與SDK文件完全分離。這就是為什么SoC-Empty示例項(xiàng)目包含app.c /app.h文件,這些文件實(shí)現(xiàn)了應(yīng)用程序,并且獨(dú)立于底層SDK版本。(當(dāng)然,可以添加更多實(shí)現(xiàn)應(yīng)用程序代碼的文件。)
在這種情況下,遷移到新的SDK版本的步驟是:
使用新的SDK版本創(chuàng)建一個(gè)新的SoC-Empty項(xiàng)目。
用您的應(yīng)用程序覆蓋app.c/app.h。
添加其他應(yīng)用程序文件(例如處理外設(shè)和為藍(lán)牙提供數(shù)據(jù)的模塊)。
將需要的SDK項(xiàng)目從更新的SDK文件夾復(fù)制到你的項(xiàng)目中(例如,如果你在項(xiàng)目中使用LE timer,你必須將em_letimer.c / em_letimer.h復(fù)制到你的項(xiàng)目中)。
用GATT配置器導(dǎo)入您的GATT數(shù)據(jù)庫(kù)。找到右側(cè)的import按鈕,并從舊項(xiàng)目導(dǎo)入ga .xml文件。按Generate按鈕以便在你的項(xiàng)目中生成GATT數(shù)據(jù)庫(kù)代碼。
您可能在您已經(jīng)存在的項(xiàng)目中針對(duì)init_mcu.c, init_board.c, init_app.c申請(qǐng)了修改,與其用舊項(xiàng)目的文件來(lái)覆蓋這些文件,不如合并您所做的更改。這一點(diǎn)很重要,因?yàn)檫@些文件不是獨(dú)立于SDK的,而且在兩個(gè)SDK版本之間。重要!在此步驟后請(qǐng)不要在GATT配置器中按Generate鍵,因?yàn)樗赡軙?huì)重新生成這些文件,而您的更改可能會(huì)消失!
在項(xiàng)目設(shè)置中添加附加的include目錄(例如,如果您為自己的頭文件創(chuàng)建了一個(gè)新的文件夾,或者將SDK文件復(fù)制到一個(gè)新的文件夾中)和數(shù)據(jù)庫(kù)。重要!在此步驟后請(qǐng)不要在GATT配置器中按Generate鍵,因?yàn)樗赡軙?huì)重新生成這些文件,而您的更改可能會(huì)消失!
現(xiàn)在可以構(gòu)建項(xiàng)目了。
4. 更新現(xiàn)有項(xiàng)目中的SDK文件您也可以采用另一種方法,一個(gè)一個(gè)地更新項(xiàng)目中的所有SDK文件。在這種情況下,你應(yīng)該執(zhí)行下列步驟:
更新項(xiàng)目中的/硬件、/平臺(tái)和/協(xié)議文件夾。由于項(xiàng)目中的這些文件夾只包含SDK的/硬件、/平臺(tái)、/協(xié)議文件夾中的文件子集(C:SiliconLabsSimplicityStudiov4developersdksgecko_sdk_suitevX.Y),所以應(yīng)該逐個(gè)復(fù)制這些文件,而不是將整個(gè)文件夾復(fù)制到項(xiàng)目中!
至少檢查main.c, init_mcu.c, init_board.c,init_app.c。如果它們包含來(lái)自上一個(gè)SDK版本以來(lái)的任何重要更新,則為init_app.c。創(chuàng)建一個(gè)新的SoC-Empty項(xiàng)目,并將新文件與現(xiàn)有項(xiàng)目進(jìn)行比較。如果您看到任何未由您完成的更改,請(qǐng)將這些更改合并到您的項(xiàng)目中。
-
藍(lán)牙無(wú)線
+關(guān)注
關(guān)注
0文章
9瀏覽量
8044 -
SDK
+關(guān)注
關(guān)注
3文章
1045瀏覽量
46315 -
Gecko
+關(guān)注
關(guān)注
0文章
6瀏覽量
8273
原文標(biāo)題:應(yīng)用指南-如何在Gecko SDK新版本中遷移藍(lán)牙項(xiàng)目
文章出處:【微信號(hào):SiliconLabs,微信公眾號(hào):Silicon Labs】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論