2015/03/17

LinkIt ONE:安裝軟體開發環境

之前已開箱LinkIt ONE並簡單介紹,這一篇則要記錄 如何安裝軟體開發環境,並執行第一支程式讓LED閃爍。

LinkIt ONE的軟體開發環境以Arduino IDE為基礎,但因為主晶片MT2502(代號Aster)的處理器核心是ARM7 EJ-S,並非Arduino的AVR架構微控制器,所以必須加入LinkIt ONE專屬的東西,諸如軟體移植層、程式庫(GSM、GPRS、GPS、WiFi等等)、以及燒錄和韌體更新工具。

LinkIt ONE軟體開發環境目前支援Windows XP/Vista/7/8,至於Mac OS X與Linux,尚在計畫中。

首先安裝Arduino的部份,目前相容於1.5.6-r2 BETA與1.5.7 BETA這兩個版本,請到Arduino官網下載,我下載的是arduino-1.5.7-windows.zip(192 MB),解壓縮後得到目錄arduino-1.5.7,我放在D:\Arduino裡,之後需要這個存放Arduino的路徑。

然後到LinkIt ONE官網,先填資料註冊,會寄一封郵件到你輸入的email信箱,點擊郵件中的網址啟動帳號,才算真正註冊成功。

註冊成功並登入後,到官網軟體區,下載LinkIt ONE的軟體部分,我下載的是1.1版,檔案是MediaTek_LinkIt_SDK_for_Arduino_1_1_05.zip,14 MB。
解壓縮後得到mediatek_linkit_sdk_(for_arduino)-1.1.05.exe,執行便可安裝LinkIt ONE的軟體部分。執行後的畫面如下,建議以系統管理者的身分執行,建議關閉其他軟體,建議關閉防毒軟體。
看到「Select Destionation Localtion」時,必須選擇Arduino軟體的所在路徑。
準備工作完畢。
開始安裝,照理說應該很快。
不過我碰到問題,停在一半的地方。
錯誤訊息如下,嘿,什麼跟什麼啊。後來重開機,並關閉防毒軟體才解決。
最後會問你要不要安裝LinkIt ONE板子的驅動程式,若是第一次安裝請勾選「Install the MediaTek USB Driver」,之後更新的話就不必了。
呼,完成囉,其實就是把一些檔案複製到Arduino軟體存放路徑裡而已,你可以比較看看安裝前後的樣子,在Arduino軟體路徑裡的子目錄drivers、hardware/arduino、hardware/tools裡,各多了個子目錄mtk,也就是LinkIt ONE需要的東西,包括板子的組態設定、驅動程式、程式庫、燒錄與韌體更新工具。

接下來,試著讓板子內建的LED閃爍吧。首先,如下圖,板子上有三個指撥開關,非常重要
1:上下兩端標示著SPI與SD,請切到SPI(上),代表SPI功能相關腳位由你使用。若切到SD,代表想使用外插的Micro SD卡,那麼腳位D11、D12、D13就不能運作,而內建LED連接到腳位D13。
2:上下兩端標示著MS與UART,請切到UART(下),代表你想燒錄程式。MS代表不會執行程式,板子裡的Flash儲存媒體會成為類似於隨身碟/記憶卡的模式,可用於韌體更新。
3:上下兩端標示著USB與BAT,請切到USB(上),從USB線/電腦端汲取電源。若是BAT則從電池供電,若連接電腦可進行充電。

然後以USB線連接板子與電腦,到裝置管理員裡,查看板子取得的序列埠(COM)號,會有兩個,其中「Debug」那個是用來燒錄程式的,請記住埠號;另一個「Modem」則是平時傳輸用的,在程式裡透過名稱Serial來使用。注意:你的埠號不一定跟我的相同。
開啟Arduino IDE,從選單「Tools-Board」選擇板子「LinkIt ONE」。
從選單「Tools-Port」選擇剛剛查出來的序列埠號。以我的例子而言應該選COM11。
接下來,開啟範例程式「File-Examples-01.Basics-Blink」,執行「Sketch-Verify / Compile」進行編譯。最後會有編譯後的程式大小,以及上限。
執行「File-Upload」上傳/燒錄程式,在輸出訊息裡,最後會看到副檔名VXP,這是LinkIt ONE的Maui Runtime Environment(執行環境)的執行檔格式,然後進行燒錄動作,把程式傳到LinkIt ONE的檔案系統裡,板子重置開機時,執行環境就會自動載入並執行。
從輸出訊息可看到一些東西,會以g++與gcc編譯器來編譯原始碼,以ar把hardware\arduino\mtk\cores\arduino裡的包成程式庫core.a,然後再加上libmtk.a與其他,變成ELF格式,再使用PackTag.exe包裝成VXP格式,最後使用pushtool.exe進行燒錄。

嘿,看到LED閃爍囉,成功囉。
基本的軟硬體開發環境準備就緒後,可到官網的API參考文件區,看看有哪些API,也可看看開發者手冊,裡頭有幾個範例,包括收發SMS簡訊、使用WiFi與藍牙等。
雖說開源,但開放的是上層的東西,也就是Arduino部分的介面等程式庫,底層的仍非開源,譬如libmtk.a,真正的實作都在裡頭,而且libmtk.a也只是更底層即時作業系統(RTOS)的介面,底下的驅動程式與硬體操作動作的程式,都在韌體中。不過就跟Arduino Yún非完全開放一樣,為了保護公司秘密與利益,這也無可厚非。

參考資料:

7 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. 版主您好:
    我有一塊linkit可是好像壞掉了,隔一段時間會自動reset
    插進電腦讀不到port , 可是我用另一塊linkit可以運作
    想請問如何重新燒錄韌體呢?
    謝謝

    ReplyDelete
    Replies
    1. 會自動reset? 那有問題喔...有接什麼東西嗎?

      試試重新燒錄韌體
      http://yehnan.blogspot.tw/2015/03/linkit-one_18.html

      Delete
  3. 贊哦!多謝分享!

    ReplyDelete
  4. 版主你好,我是新手,我從官網抓下來的IDE和SDK裡面沒有LBT的H檔案(還有一些檔案都沒有),請問你知道是哪個環節出錯嗎?

    ReplyDelete
    Replies
    1. 你好,我不是老手,已經沒玩linkit one了。

      你抓了什麼?

      請按照官方文件安裝
      http://labs.mediatek.com/site/global/developer_tools/mediatek_linkit/get-started/windows_os_stream/install/index.gsp

      Delete
  5. Anonymous9/8/18 09:54

    請問大大LinkIt ONE能與HX711重量感測器做結合嗎? Arduino Uno可以,程式都寫好了,但是把同樣程式放到Linklt ONE就不能用了,燒得進去但沒反應,試了很久還是試不出來,想請問大大能否知道問題在哪~

    ReplyDelete