電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 598|回復(fù): 0
收起左側(cè)

【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】第二彈 常用代碼目錄分析

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

高級會(huì)員

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-11-13 09:57:34 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】第二彈 常用代碼目錄分析,   





最近這段時(shí)間太忙了,以至于帖子一拖再拖。趕鴨子上架的先寫幾篇,哈哈哈~~~。

在我們拿到Hi3861的代碼目錄以后可能小白會(huì)對龐大的代碼體系有點(diǎn)抓狂,這里敘述幾個(gè)要點(diǎn),改代碼的時(shí)候只需要從以下幾個(gè)目錄入手,等用的熟悉了在去細(xì)細(xì)的琢磨鴻蒙的整個(gè)系統(tǒng)框架即可,切不可一蹴而就的想著一口氣吃個(gè)胖子,這樣會(huì)讓你失去琢磨整個(gè)體系的興趣,不要急慢慢來。


鴻蒙系統(tǒng)接口層:



base\iot_hardware\frameworks\wifiiot_lite\src





鴻蒙系統(tǒng)為了提供統(tǒng)一的系統(tǒng)接口在此封裝了系統(tǒng)層接口,這樣就可使得應(yīng)用層忽略低層硬件設(shè)備接口的不同導(dǎo)致的重復(fù)造輪子的問題。后續(xù)其他的設(shè)備接入到鴻蒙系統(tǒng)中只需要將鴻蒙接口層當(dāng)作一個(gè)中間件(連接器),做驅(qū)動(dòng)開發(fā)的同學(xué)將驅(qū)動(dòng)代碼封裝成鴻蒙系統(tǒng)接口,然后應(yīng)用開發(fā)就可以不用考慮低層設(shè)備到底是STM32還是Hi3861,只需要用系統(tǒng)API來做應(yīng)用邏輯開發(fā)即可。






HI3861驅(qū)動(dòng)層API:



vendor\hisi\hi3861\hi3861\platform\drivers

因?yàn)楹K疾]用將Hi3861的Datasheet開放出來(后續(xù)感覺也不會(huì)開放出來,海思的一貫作風(fēng),只有大客戶簽署了保密協(xié)議才會(huì)把SDK包給你),并且將低層代碼固化在了芯片中,所以這里提供了一些Hi3861的功能接口(實(shí)際上從這個(gè)接口往下用sourceInsight去扒拉扒拉是能看到寄存器操作的,有興趣的同學(xué)可以去琢磨下)。在某些鴻蒙沒有的功能接口的地方可以直接調(diào)用驅(qū)動(dòng)層API來實(shí)現(xiàn)一些功能,但是建議還是不要這樣操作。潤和的很多Demo代碼中使用的就是驅(qū)動(dòng)層API,這種做法是及其不正確的,他破壞了鴻蒙的架構(gòu)初衷,因此不推薦大家這樣做。


驅(qū)動(dòng)模塊使能:

vendor\hisi\hi3861\hi3861\build\config\usr_config.mk

整個(gè)工程中是通過gn來做項(xiàng)目管理的,類似于makefile。所以項(xiàng)目中的諸多功能也是可以通過宏的形式去管理的,這樣就方便了后續(xù)的一些功能定制,只需要做一些開宏處理就可以使用諸多的低層硬件功能。如果對宏定義不太理解或者不知道怎么用的話可以學(xué)習(xí)下這篇文章: https://blog.csdn.net/jmh1996/article/details/72832737
注意: 在操作硬件外設(shè)的時(shí)候切記要先在usr_config.mk中開宏,若不開程序是不會(huì)初始化外設(shè)硬件的。


引腳IO及其外設(shè)初始化:







vendor\hisi\hi3861\hi3861\app\wifiiot_app\init\app_io_init.c





這部分代碼實(shí)際上就是上面講到的宏定義實(shí)際控制的外設(shè),可以看到每個(gè)功能前面都有“#ifdef XXXX”這就是宏控制塊。






驅(qū)動(dòng)層例程:



vendor\hisi\hi3861\hi3861\app\demo\src

這個(gè)目錄下有對Hi3861的通用外設(shè)的簡單講解,在初次只用的時(shí)候如果不知道怎么用可以參考下這個(gè)目錄下的代碼,抄襲不可怕,誰還不是個(gè)CV工程師呢!

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表