學習建立新的專案 - 嵌入式網路系統實驗室

Download Report

Transcript 學習建立新的專案 - 嵌入式網路系統實驗室

IAR Embedded Workbench
執行專案建立方法
目錄
• 建立新的專案-CC2530
• Empty Template CC2530 專案內容與設計方法
• LAB0-驅動MCU-KIT1板子
• Empty Template CC2530 專案Compiler錯誤
建立新的專案-CC2530
學習建立新的專案
建立新的專案-CC2530
• 請將資料夾內的Empty Template CC2530複製一份出來
• 接著再將Empty Template CC2530更改成lab相對應的名稱
• EX:lab1-led
※自行進行建立CC2530專案是一件麻煩的工作,請使用實驗提供的Empty
Template CC2530專案來開發,此專案已經將基本的工作環境設定好。
Empty Template CC2530 專案內容與設計方法
瞭解附錄的開發專案內容
Empty Template CC2530 專案內容
Empty Template CC2530 專案內容
在workspace內有basic rf、common 、main 、modules 、
targets 、utilties 、Output等資料夾
Basic rf group
The "Basic RF" library contains simple functions for packet transmission and
reception with the IEEE 802.15.4 compliant radio devices
Empty Template CC2530 專案內容
Basic rf group
The "Basic RF" library contains simple functions for packet transmission and
reception with the IEEE 802.15.4 compliant radio devices
Common group
針對板子的功能,提供一些API以供使用,EX:clock、ADconveter等
Modules group
針對一些關於「外部模組」範例檔,可以使用裡面所提供的API來達到一
些功能,EX:溫度感測、紅外線等
Empty Template CC2530 專案內容
Target group
針對一些關於「內部模組」範例檔,可以使用裡面所提供的API來達到一
些功能,EX:蜂鳴器、LCD螢幕等。
※根據不同的模組版組合,選取不同的library。
Mcu-kit1:實驗主板、有LCM那塊+mcu板
Mcu-kit2:專業版實驗主板
Mcu-tag1:電池主板+mcu板
Mcu-net1:通訊介面板+mcu板
zigbee-mcu1:僅有mcu板
Utilities group
提供一些額外的library,EX:ring buffer等
圖待補
實驗版介紹
ZigBee MCU版與除錯燒錄器
實驗版介紹
ZigBee MCU-KIT-1版
實驗版介紹
ZigBee MCU-KIT-2版
實驗版介紹
ZigBee TAG版(電池座)
實驗版介紹
ZigBee Net版(支援RS232 / USB / RS485 / ETHERNET)
Empty Template CC2530 專案設計方法
進入components資料夾內,這個資料夾包含了上述所提到的各式library
※在開發專案前,必須將相對應的library include進來,由下頁說明方法。
Empty Template CC2530 專案設計方法
在workspace對應的資料夾中,選取對應的資料夾,在新增你這次要使用
的library檔案。
如果你對要使用哪個library檔不清楚,那全部都加進來是一個比較方便的
方法。
Empty Template CC2530 專案設計方法
接著再自己新增一個main.c來進行開發即可!
LAB0-驅動MCU-KIT1板子
學習建立專案並完成驅動版子
LAB0-驅動MCU-KIT1板子
• 在workspace對應的資料夾中,新增library
•
•
•
•
•
Group
Basicrf
Common
Targets
Utilities
新增路徑
components\basicrf
components\common
components\targets\mcu-kit1
components\utils
LAB0-驅動MCU-KIT1板子
• 輸入以下程式碼:
#include "hal_defs.h"
#include "hal_int.h"
#include "hal_mcu.h"
#include "hal_board.h"
#include "hal_lcd.h"
#include "hal_keypad.h"
#include "hal_buzzer.h"
//------------------------------------------------------------------void main(void)
{
// Initalise board peripherals
halBoardInit();
// Main loop
while (TRUE)
{
}
}
LAB0-驅動MCU-KIT1板子
• 接著插上板子,選擇Debug按鈕(compiler+debug)
• 接著在按F5(GO),讓板子上的程式執行,這樣便完成板子的驅動
• 記得以後都要先驅動版子在執行其他程式! (避免發生未知錯誤)
Empty Template CC2530 專案Compiler錯誤
學習解決Compiler時產生的錯誤
Empty Template CC2530 專案Compiler錯誤
Compiler 找不到include檔?
• 發生此問題的原因為compiler找不到include的檔案,EX:hal_defs,這是一
個很常見的問題,解決方法大致上有兩種
• 第一種:把檔案丟到專案目錄下(不建議,會造成專案目錄複雜化)
• 第二種:把相關檔案路徑告訴compiler(推薦)
• 我們接著介紹第二種方法的實作方式
Empty Template CC2530 專案Compiler錯誤
• 在workspace內的專案點一下,選option
• (不然會變成設定專按下的group或其他檔案)
Empty Template CC2530 專案Compiler錯誤
• 選C/C++ Compiler
• 在選Preprocessor
• 在Additional include directories(one per line)的空格內輸入下文
$PROJ_DIR$/../components/utils
$PROJ_DIR$/../components/common
$PROJ_DIR$/../components/basicrf
$PROJ_DIR$/../components/targets/mcu-kit1
$PROJ_DIR$/../components/targets/mcu-tag1
$PROJ_DIR$/../components/module
$PROJ_DIR$/../components/utils
注意標紅色的$PROJ_DIR$/../ 下頁有詳細解釋。
Empty Template CC2530 專案Compiler錯誤
• $PROJ_DIR$/../components/?????
• $PROJ_DIR$ 為當前專案的目錄
• ../ 為上一個目錄
• Components為放置這種library的資料夾
• 先確認components的位置,假設放在
C:\Users\Administrator\Desktop\感測網路\components
• 假設專案放在
C:\Users\Administrator\Desktop\感測網路\WorkModule\3.基本IO控制\io.eww
• 那$PROJ_DIR$就是專案的位置:
C:\Users\Administrator\Desktop\感測網路\WorkModule\3.基本IO控制
• 那妳就必須新增下列指令,compiler才能正確抓到include file
$PROJ_DIR$/../../components/utils
$PROJ_DIR$/../../components/common
$PROJ_DIR$/../../components/basicrf
$PROJ_DIR$/../../components/targets/mcu-kit1
$PROJ_DIR$/../../components/targets/mcu-tag1
$PROJ_DIR$/../../components/module
$PROJ_DIR$/../../components/utils