Zigbee學習(一)之新建Zstack協議棧工程

puppygod發表於2013-08-13

本人學習Zigbee有一段時間了,想把一些基礎和學習心得記錄下來,以便和廣大Zigbee發燒友交流探討,也作為一種學習筆記可以複習參考。我想把新建Zstack工程來作為Zigbee學習的第一篇文章,初來乍到,有心的朋友多多指教。

在新建工程之前,我們要做的是要安裝IAR編譯軟體,並且下載ZStack協議棧,我用的版本是ZStack-CC2530-2.3.1-1.4.0,這是TI公司的協議棧,在官網上或者百度一下都能下載的到的。前期準備工作就緒之後,正式進入主題,這裡說的新建一個Zigbee工程是以TI的Zstack協議棧裡的例子作為模板來修改成自己的協議棧,如果光自己新建,要寫的程式碼實在太多,所以我們呼叫原始的參考例子來新建,然後新增一些程式碼程式來實現自己要的功能就行了。下面來實現具體步驟:

第一,新建一個資料夾,將ZStack-CC2530-2.3.1-1.4.0中的檔案都複製到自己新建的資料夾中,其中Documents是一些對協議棧的開發指導,可以不用複製,TOOLS資料夾也是可要可不要的。然後,進入projects資料夾下的zstack資料夾,如下圖所示,其中HomeAutomation,samples,SE,utilities,ZNP都是TI提供的example,我們可以選擇自己需要的例子來修改,那麼別的例子就可以刪除,比如我要使用samples資料夾中的GenericApp例程,就可以將其他資料夾都刪除,切記ZMain資料夾和Libraries,Tools資料夾不能刪除,否則會導致編譯錯誤,以為在協議棧中涉及到這三個資料夾中的APP函式和一些定義。

第二,接下來就要重新命名資料夾,比如我用PuppyApp來取代GenericApp,然後進入PuppyApp資料夾有兩個資料夾,分別是CC2530DB和Source,我們要將其內部的和GenericApp有關的所有名稱都改成自己的名稱,首先進入CC2530DB資料夾,毫不猶豫的將三個檔名都改成PuppyApp.字尾,完成之後只是表面上的修改而已,這時開啟PuppyApp.eww的結果如圖:
正確的做法是再將這三個檔案用記事本開啟,將檔案中的所有GenericApp都替換為PuppyApp,然後我們可以進入IAR進行編譯,MAKE一下以後發現Fatal Error[Pe005]: could not open source file "C:\Documents and Settings\Administrator\桌面\puppygod text2\Projects\zstack\Samples\PuppyApp\Source\ 。
第三,要解決上述問題,不難發現錯誤是無法開啟Source檔案下的PuppyApp.c檔案,那我們就去尋找Source資料夾下的檔案,發現也有三個檔案,我們依舊對它們進行重新命名,將GenericApp改成PuppyApp,並將其用記事本開啟,查詢替換完成之後再make一下,發現沒有錯誤,如圖所示:

但是這並沒有完成,細心的同學不難發現程式碼中好多定義都是GENERICXXXX之類的,我們還是要將其改為自己的名字比較好,為了後期能比較清晰,不容易在巨集定義上犯錯誤,所以我們將剛才三個檔案中GENERICAPP都改成PUPPYAPP就行了,當然OSAL_PuppyApp中其實是沒有GENERICAPP的,這一點改不改也沒關係。

 

相關文章