找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3991|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

Zstack之文件結(jié)構(gòu)梳理

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:76127 發(fā)表于 2015-4-18 00:28 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
    TI的Zigbee解決方案Zstack提供了一整套基于TI的CC253X系列芯片的Zigbee解決方案。從TI官方網(wǎng)站上下載下來(lái)的Zstack安裝文件安裝完成后是一個(gè)文件夾。很多人在剛接觸的時(shí)候很難使用這個(gè)文件夾里的東西進(jìn)行Zigbee開(kāi)發(fā),這確實(shí)非常出乎TI的風(fēng)格,使用過(guò)TI的CCS軟件的朋友就能感受到,CCS在引導(dǎo)使用方面做得相當(dāng)?shù)赝晟,而這個(gè)呢,還要自己去搞個(gè)IAR,然后面對(duì)一堆文件夾不知道該怎么用。⊙﹏⊙b汗,我覺(jué)得學(xué)習(xí)使用這個(gè)首先要明白其結(jié)構(gòu),從大局上看明白其結(jié)構(gòu),然后再著重具體細(xì)節(jié)是一種比較好的深入方式。下面首來(lái)看下Zstack文件夾中的相關(guān)內(nèi)容吧。
如圖1所示,打開(kāi)Zstack文件夾,里面有幾個(gè)文件夾和一個(gè)英文的引導(dǎo)手冊(cè)。

圖1
手冊(cè)實(shí)際沒(méi)說(shuō)啥有用的,而且Zstack里面的資源文件都是基于TI自家的開(kāi)發(fā)板的,其目錄里的user guider文件只有些許參考價(jià)值。重要的是幾個(gè)文件夾,Components文件夾里存放的是Zstack協(xié)議棧的各層的接口函數(shù)文件,包括hal、mac、mt、osal、stack等。各層都在獨(dú)立的文件夾中,如圖2所示

圖2
其中最值得注意的是mac和zstack這兩個(gè)文件夾,這是整個(gè)zstack的靈魂所在。打開(kāi)各自的子目錄,大家可以發(fā)現(xiàn),里面只提供了.h文件,即只提供了所謂的接口調(diào)用,這就是所謂的TI的不開(kāi)源協(xié)議棧的方式。這兩層大家都只能夠調(diào)用,而不能查看具體的源代碼。而其他子文件夾中,有很多是開(kāi)源的,比如說(shuō)osal文件夾,這是TI的Zstack小型操作系統(tǒng)的資源文件所在,在其中我們可以看見(jiàn)不光提供了.h調(diào)用,甚至還提供了諸如Osal_timer.c各模塊的源文件和Osal.c主源文件,有興趣的朋友可以根據(jù)這些源代碼把OSAL移植到其他架構(gòu)的單片機(jī)上去哦。這是關(guān)于Components文件夾的介紹,其中存放了Zstack工程所必需的各種源文件和調(diào)用聲明。至于不開(kāi)源的部分的庫(kù)文件在哪里,后面再做介紹。
Documents文件夾中包含了TI官方提供的認(rèn)為有助于進(jìn)行Zstack開(kāi)發(fā)的文檔,這里面的東西都相當(dāng)?shù)膶?shí)在和給力,建議大家在接觸使用時(shí),多參看其中的文檔,很多東西在這些文檔中都已經(jīng)做了很詳細(xì)和深刻的介紹和使用了。其他的中文輔助資料,個(gè)人認(rèn)為沒(méi)啥大用,有時(shí)候還會(huì)誤導(dǎo)他人,反而很久都搞不定。

Tools文件夾存放的是上位機(jī)調(diào)試工具,在Zstack中通過(guò)預(yù)編譯宏定義啟用了MT(Moniter ang Test)層之后,可以使用這里面的工具獲取Zstack工程在運(yùn)行中的各種狀態(tài)參數(shù),說(shuō)白了,就是中國(guó)工程師們所慣用的串口調(diào)試打印,把一些關(guān)鍵的參數(shù)狀態(tài)通過(guò)串口打印出來(lái),只不過(guò)這里TI給你做好了,而且是上位機(jī)都做好了,我們只需要學(xué)習(xí)如何調(diào)用即可。:)這個(gè)文件夾里的工具如何使用在后續(xù)再做具體介紹。

最后一個(gè)文件夾也是TI最用心良苦的地方,Projects文件夾,打開(kāi)該文件夾如圖3所示:

圖3
這里面包含了很多歌文件夾,但如果大家有仔細(xì)地查看每個(gè)文件夾,就會(huì)發(fā)現(xiàn)其實(shí)這些個(gè)文件夾里面,有多個(gè)其中的內(nèi)容是相近的。大體上這些文件夾分為三類,第一類也是使用Zstack協(xié)議棧所必須的文件Zmain.c文件,該文件存放于Zmain文件夾中,并根據(jù)Zigbee解決方案又分為兩類,如圖4所示:TI2530DB和TI2530ZNP。

                     圖4
首先要明確的是一點(diǎn),Zmain.c文件在每個(gè)Zstack工程中僅且有一個(gè),而圖5所示的兩個(gè)文件夾中各自有一個(gè)Zmain.c文件,說(shuō)明了這兩個(gè)文件夾對(duì)應(yīng)兩種不同的解決方案所采用不同的Zmain.c文件。TI2530DB 表示的是基于TI 2530芯片為核心的Zigbee解決方案,而ZNP呢,ZNP即Zigbee and Processor,即CC2530+MCU的解決方案,這也是TI所提供的兩種不同的解決方案,具體的在Documents文件夾中有相關(guān)的介紹文檔。
第二類文件即庫(kù)文件,上面在介紹Components文件夾中就說(shuō)了,TI 的MAC和Zstack是不開(kāi)源的,在Compoents文件夾中僅提供了.h文件供調(diào)用,而庫(kù)文件.lib就在這里,Libraries文件夾中,大家打開(kāi)該文件夾可以發(fā)現(xiàn)TIMAC和Zstack的庫(kù)文件,如圖5、6所示:

圖5

圖6
剩下的幾個(gè)文件夾中內(nèi)容就是TI提供Zstack使用的模板了。這些個(gè)文件夾中都包含了一個(gè)或多個(gè)工程,比如Samples文件夾,很多教程都喜歡以它為例,里面內(nèi)容如圖7所示:

圖7
這里面很顯然包含三個(gè)不同的工程,GenericApp、SampleApp、SimpleApp,點(diǎn)擊其中一個(gè)GenericApp工程的文件進(jìn)入,可以看見(jiàn)又有兩個(gè)文件夾,如圖8所示:

圖8
這兩個(gè)文件夾中,其中CC2530DB是IAR工作空間文件,包含了相應(yīng)的各種工程設(shè)置,都是官方預(yù)先設(shè)置好了的,是適用于一定的應(yīng)用場(chǎng)合的設(shè)置。而Source文件夾中一般包含三個(gè)文件,也是我們進(jìn)行Zigbee開(kāi)發(fā)所需要進(jìn)行自行編輯的三個(gè)文件,app.h、app.c、OSAL_app,這三個(gè)文件中app.c是具體的適用于自己應(yīng)用的應(yīng)用進(jìn)程函數(shù)所在之處,.h當(dāng)然就是調(diào)用了,OSAL_app.c里面包含了三個(gè)最主要的東西,初始化系統(tǒng)時(shí)所需要對(duì)應(yīng)用app的初始化和對(duì)應(yīng)的事件處理函數(shù),還有就是任務(wù)事件處理指針數(shù)組。這也是一般在此文件中需要修改的地方。這就是整個(gè)Zstack的結(jié)構(gòu),調(diào)用,庫(kù),工程設(shè)置,應(yīng)用源文件這幾部分。其余的幾個(gè)文件夾中,也是同樣的結(jié)構(gòu),它們都是提供了適用于各方面應(yīng)用的模板工作空間和對(duì)應(yīng)的源代碼。我覺(jué)得模板兩個(gè)字足以概括出TI的Zstack提供這款協(xié)議棧的方式所在。

該文是自己在學(xué)習(xí)使用Zstack過(guò)程中的一些心得體會(huì),其中可能會(huì)有一些錯(cuò)誤和不清之處,歡迎大家指出并一起討論研究。:)



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表