OpenHarmony輕量系統(tǒng)—潤(rùn)和HiHopePegasus 3861實(shí)現(xiàn)UDP廣播溫濕度
??想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):??
??51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)??
筆者最近拿潤(rùn)和HiHope Pegasus(也叫做wifiiot_hispark_pegasus)開(kāi)發(fā)套件開(kāi)始OpenHarmony輕量系統(tǒng)的學(xué)習(xí),以此篇文章分享學(xué)習(xí)經(jīng)驗(yàn)。
本文實(shí)現(xiàn)了用潤(rùn)和HiHope Pegasus UDP廣播溫濕度數(shù)據(jù),樣例demo下載鏈接:https://gitee.com/from-north-to-north/open-armony-north/tree/master/潤(rùn)和3861輕量系統(tǒng)UDP廣播
樣例運(yùn)行的OpenHarmony源碼環(huán)境下載:https://gitee.com/HiSpark/hi3861_hdu_iot_application
通過(guò)本文您將了解:
1、HiHopePegasus 3861 連接wifi
2、HiHopePegasus 3861 溫濕度
3、HiHopePegasus 3861 UDP廣播
一、OpenHarmony 輕量系統(tǒng)開(kāi)發(fā)源碼選擇
筆者剛開(kāi)始接觸輕量系統(tǒng)開(kāi)發(fā)。因?yàn)橹岸冀佑|的是標(biāo)準(zhǔn)系統(tǒng)(開(kāi)發(fā)板是DAYU200),所以筆者開(kāi)始在源碼的選擇還是和標(biāo)準(zhǔn)系統(tǒng)一樣,直接拿OpenHarmony 3.2 release來(lái)編譯出wifiiot_hispark_pegasus的固件。
但是等到筆者學(xué)習(xí)后發(fā)現(xiàn),作為初學(xué)者的筆者拿到一些大佬的樣例demo在OpenHarmony 3.2 release源碼中根本編譯不過(guò)(要么是一些函數(shù)名變了,要么是頭文件路徑變化了)。
3.2release 中的輕量系統(tǒng)源碼,很多目錄結(jié)構(gòu)變化了。然后一些函數(shù)名稱也有很大變化。后來(lái)咨詢徐思維老師得知,因?yàn)橛幸恍?xxx_lite 的組件退休了,和標(biāo)準(zhǔn)系統(tǒng)合并到一起了。(早期版本中很多組件有 xxx_lite 和 xxx,或者 xxx_lite 和 xxx_std 兩個(gè)版本,xxx_lite 就是 輕量、小型 的版本。退休的組件在這個(gè)組織下面能找到: https://gitee.com/openharmony-retired)。
OpenHarmony 1.x Releases也已經(jīng)全部停止維護(hù)了,參見(jiàn)公告:
https://gitee.com/openharmony/release-management/blob/master/OpenHarmony 1.0.1-Release分支停止維護(hù)公告.md#https://gitee.com/openharmony/docs/tree/master/zh-cn/release-notes
詳細(xì)可參見(jiàn)OpenHarmony版本生命周期管理 https://gitee.com/openharmony/release-management/blob/master/OpenHarmony生命周期發(fā)布公告.md。
所以我選擇了從海思的倉(cāng)庫(kù)中下載HiHope Pegasus套件的OpenHarmony輕量系統(tǒng)源碼,下載鏈接:https://gitee.com/HiSpark/hi3861_hdu_iot_application (里面潤(rùn)和提供的樣例demo是能夠跑通的,并且一直在維護(hù))。
二、. UDP廣播溫濕度
UDP廣播溫濕度 樣例demo下載:https://gitee.com/from-north-to-north/open-armony-north/tree/master/潤(rùn)和3861輕量系統(tǒng)UDP廣播
1、運(yùn)行步驟:
把樣例demo下載后放置在applications/sample/wifi-iot/app文件夾下:
在樣例demo中設(shè)置要連接的wifi信息。
修改applications/sample/wifi-iot/app/BUILD.gn文件,把樣例demo加入編譯。
修改device/soc/hisilicon/hi3861v100/sdk_liteos/build/config/usr_config.mk文件。
CONFIG_I2C_SUPPORT is not set行,修改為:CONFIG_I2C_SUPPORT=y。
進(jìn)行編譯,然后把固件燒錄到潤(rùn)和HiHope Pegasus開(kāi)發(fā)套件中(這個(gè)部分可以參考網(wǎng)上大佬的文章,筆者不多敘述)。
輕量系統(tǒng)的編譯真是快呀,兩三秒就搞定。不像標(biāo)準(zhǔn)系統(tǒng)需要兩三個(gè)小時(shí)。
2、運(yùn)行效果:
將電腦連接同樣的wifi,在電腦端打開(kāi)socket調(diào)試工具,創(chuàng)建UDP組播,組播地址為255.255.255.255,組播端口為8080。
開(kāi)發(fā)板連接串口工具,按下開(kāi)發(fā)板上reset鍵??梢钥吹絪ocket調(diào)試工具一直不斷收到開(kāi)發(fā)板UDP廣播的溫濕度數(shù)據(jù)。
開(kāi)發(fā)板連接串口工具,按下開(kāi)發(fā)板上reset鍵??梢钥吹奖鹃_(kāi)發(fā)板在局域網(wǎng)內(nèi)的ip地址。
將電腦和開(kāi)發(fā)板鏈接同一個(gè)開(kāi)發(fā)板后,可以在電腦端 ping一下開(kāi)發(fā)板ip地址。
三、 樣例demo源碼分析
UDP廣播溫濕度 樣例demo下載:https://gitee.com/from-north-to-north/open-armony-north/tree/master/潤(rùn)和3861輕量系統(tǒng)UDP廣播。
溫濕度實(shí)現(xiàn)源碼來(lái)自 https://gitee.com/HiSpark/hi3861_hdu_iot_application/tree/master/src/vendor/hihope/hispark_pegasus/demo/10_i2caht20。
wifi連接實(shí)現(xiàn)源碼來(lái)自:
https://gitee.com/asd1122/hi3861_hdu_iot_application_cy/tree/master/demo/wifi_control。
kernel/liteos_m/cmsis/cmsis_os2.h的中文注釋:
https://gitee.com/openharmony-sig/interface_native_header/blob/master/zh-cn/kernel/liteos_m/cmsis/cmsis_os2.h。
輕量級(jí)系統(tǒng)內(nèi)核:
https://gitee.com/openharmony/docs/tree/58040d7d4d34a2176b12d08059d8d295cc821983/zh-cn/device-dev/kernel。
文章相關(guān)附件可以點(diǎn)擊下面的原文鏈接前往下載:
https://ost.51cto.com/resource/2709。
??想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):??