六步帶你完成博流wifi模組對接華為雲流程


摘要:本文主要采用基於博流wifi模組以及我們的SDK移植實現華為雲的對接,上報數據以及命令下發等,希望對您有所幫助。

1 簡介

首先需要研究透徹博流項目的編譯運行流程,首先看其根目錄中包括components(組件),customer_app(多個demo示例)。以sdk根目錄的customer_app文件夾中存在大量的demo示例,以bl602_demo_wifi為例,主要看3個文件,genromap、Makefile、proj_config.mk。

我們知道在運行代碼時只需要在控制台輸入命令./genromap即可,分析其內部細節,依舊是采用make+參數的形式,則會根據其參數調用同文件夾下的Makefile文件,在該makeifle文件中包含了使用的組件以及對應的頭文件名稱如我們在components中添加的iot_link組件文件夾以及相應的頭文件。在該Makefile中最后一行調用到了主Makefile即$(BL60X_SDK_PATH)/make_scripts_riscv/project.mk文件,該文件會編譯調用使能的組件中的buffalo.mk文件,將所有的目標文件鏈接到一起,生成.bin文件。

接下來看一下一個典型的buffalo.mk文件,如下圖,按照如下格式進行組件中的代碼添加,當然也可以靈活使用宏定義進行統一控制,主要包括一些源文件以及頭文件的路徑以及名稱的添加,以及注釋掉的CPPFLAGS以及LDFLAGS等等。

2 適配osal層

需要將FreeRTOS適配到我們的SDK中,首先學習FreeRTOS 的常用接口以及具體使用功能方式,進行適配,FreeRTOS task需要手動刪除的特點,由於創建task使用較少,這里我只做了簡單的適配,沒有深究該細節,因此在調用osal創建任務的時候最好還是手動delete一下。

3 添加自動連接wifi任務

4 添加lwm2m使能

首先根據我們sdk中的iot.mk文件確定哪些文件需要添加進行編譯,這里有兩種方式一種是依舊采用宏定義方式,將iot.mk文件替換為buffalo.mk文件,在其中完成一個完整的組件調用包括各種宏定義組件開關配置,對於該方式需要在相應文件中進行宏定義的使能,如proj__config.mk。還有一種快速方式直接打散原sdk提取對應的.c和頭文件,雖然速度快,不易出錯,但是打散結構是我們不提倡的,代碼結構層次不夠清晰,比較適合小白。

(1)源文件列舉

(2)頭文件列舉

注意盡量規避同名頭文件的使用,否則容易出錯,如我們的sdk中的queue.h需要刪除。

5 sal層適配

由於了lwm2m內部使用tcpip因此如果使用awkka-lwm2m適配需要適配tcpip層,即sal層的適配,在我們sdk的network/tcpip/sal,注意其中的源文件要添加到上述iot_link的src中,之后適配sal層,由於博流sdk中使用的標准的lwip,這里我們導入lwip_imp.c即可。同時需要在主文件中添加如下代碼。同時原來demo的main函數中的ticip_init()函數,因為該函數已在link_tcpip_init()中執行。

6 注釋掉虛引用函數

對於本項目中應該包括

oc_lwm2m_al.c中__attribute__((weak)) int oc_lwm2m_imp_init(void)函數;
osal.c中的__attribute__((weak)) int os_imp_init(void)函數;
lwm2m.c中的__attribute__((weak)) int lwm2m_imp_init(void)函數。
sal.c中的__attribute__((weak)) int link_tcpip_imp_init(void)函數。

注意不要注釋掉__attribute__((weak)) int netdriver_install()函數,因為該函數不是每個板子都需要適配驅動,如果需要自己實現才進行注釋,否則編譯報錯。

如果拷貝完整工程需要如下三步

需要您操作的3步

(1)將上述文件iot_link組件添加到bl_iot_sdk的component路徑下。

(2) 將bl602_demo_wifi中的demo刪除,之后將文件夾中的bl602_demo_wifi拷貝過去。

(3) 該project.mk代碼我刪除了該代碼的264行的Werror=all

本文分享自華為雲社區《博流wifi模組對接華為雲流程》,原文作者:星辰27 。

 

點擊關注,第一時間了解華為雲新鮮技術~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM