本文介紹如何在 Windows 上搭建 LiteOS 的開發(fā)調試環(huán)境。基于的硬件平臺采用的是華為官方推薦的 IoT 開發(fā)板 - 小熊派(BearPi)。本文將首先介紹開發(fā)板與 Windows 連接所需的驅動安裝,再介紹用于開發(fā) LiteOS 系統(tǒng)級別軟件的集成開發(fā)環(huán)境(IDE)。LiteOS 開發(fā)可以使用兩種 IDE 開發(fā)環(huán)境,分別是華為提供的 LiteOS Studio 和 Keil 公司提供的 MDK。本文將主要介紹華為目前自研主推的 LiteOS Studio,并通過一個簡單的用例演示如何使用 LiteOS Studio 創(chuàng)建一個工程,并對其進行編譯、燒錄和設備在線調試的具體操作步驟。
2 準備環(huán)境2.1 小熊派(BearPi)介紹小熊派(BearPi)是一款基于 STM32L431RCT6 設計的高性能物聯(lián)網(wǎng)開發(fā)板。具有強大的可擴展性,提供給開發(fā)者評估及快速設計相關物聯(lián)網(wǎng)的應用產(chǎn)品。
下圖展示了 BearPi 核心板的構成:
圖 1 - BearPi 的核心板
出于演示多種物聯(lián)網(wǎng)解決方案的目的,以及擴展性的需要,整個 BearPi 套件除了核心板外還提供有多款外擴擴展板插件,整體上這些外擴插件板分為兩大類:
一類擴展板上集成了多種 “傳感(Sensor)” 設備和 “動作(Actuator)” 設備,“Sensor” 的主要職能是負責從周邊環(huán)境中采集信息并由MCU(圖 2 中標號為 “2” 的黃色線框部分)進行讀取,譬如溫度傳感器可以采集周邊環(huán)境的溫度值、光照傳感器可以采集周邊環(huán)境的光照值等等;而 “Actuator” 則指的是一些可以接受控制指令進行動作的元器件,譬如馬達用于執(zhí)行旋轉功能、燈泡可以發(fā)光,蜂鳴器可以發(fā)出聲音等等。這些 “Sensor” 和 “Acurator” 根據(jù)不同的應用場景組合后集成在一系列的擴展板上,可以通過標準的插口以插件的形式和 BearPi 的核心板進行連接。參考 圖 2 中標號為 1 的紅色線框部分。另一類擴展板上集成了各種通訊芯片和射頻單元,譬如 NB-IoT 發(fā)射單元、Wi-Fi 發(fā)射單元等,這些擴展板主要負責在 MCU 的控制下實現(xiàn)網(wǎng)絡連接,實現(xiàn) BearPi 和網(wǎng)絡云端設備的互聯(lián)互通。這些負責網(wǎng)絡通訊的擴展板同樣通過標準的插口以插件的形式連接在 BearPi 的核心板上。參考 圖 2 中標號為 “3” 的綠色線框部分。圖 2 - BearPi 的三大組成部分
2.2 安裝驅動BearPi 開發(fā)板通過 Micro USB 線與 PC 連接,所以在具體開發(fā)調試前首先要在 PC 上為開發(fā)板安裝 USB 驅動。BearPi 已經(jīng)提供了配套的驅動和 LiteOS Studio 安裝包,不做特殊說明,以下安裝包采用的都是 BearPi 套件自帶的版本。
驅動的安裝比較簡單,解壓 “小熊派開發(fā)板資料\01軟件資料” 目錄下的 “STLINK驅動.zip” 壓縮包,雙擊與自己系統(tǒng)對應的安裝程序即可, 如 圖 3 所示,32 位系統(tǒng)選擇 X86 安裝程序,64 位系統(tǒng)選擇 64 位安裝程序,并根據(jù)安裝程序提示安裝驅動(也可以直接運行stlink_winusb_install.bat 這個批處理安裝腳本文件)。這里要注意的是,由于后面安裝的 LiteOS Studio 軟件包只支持 64 位的版本,所以建議大家開發(fā)調試時使用 Windows 7 版本以上 64 位的系統(tǒng),本文演示所使用的環(huán)境就是 Windows 7 的 64 位系統(tǒng)。
圖 3 - STLINK驅動的安裝
安裝完驅動后,將開發(fā)板通過 Micro USB 線 與 PC 電腦連接,同時打開 Windows 的 設備管理器。如果在設備管理器中能找到如圖四所示的 COM 端口,證明驅動安裝成功。具體是 “COM3” 還是 “COM4”,這個值在不同的電腦上顯示的可能不同,記住這個值,后面使用 LiteOS Studio 設置串口參數(shù)的時候會有用。
圖 4 - STLINK 虛擬串口
但有時候插上 USB 線加載驅動會碰到問題,驅動提示安裝不成功。
圖 5 - 驅動提示安裝不成功
同時設備管理器中出現(xiàn)惱人的黃色感嘆號,并提示 “ST-Link VCP Ctrl”。
圖 6 - 設備管理器提示 “ST-Link VCP Ctrl” 失敗
這個問題據(jù)說多半是由于使用了非正版的 Windows 系統(tǒng)所致。具體的解決方法百度了一下,可以參考這篇 “[干貨分享] 【趁熱打“帖”】ST-Link串口驅動安裝--ST-Link VCP Ctrl驅動安裝失敗解決(Win7 64bits)” :https://bbs.huaweicloud.com/forum/thread-23929-1-1.html。
3 LiteOS Studio 開發(fā)環(huán)境搭建LiteOS Studio 是華為基于 LiteOS 嵌入式系統(tǒng)軟件開發(fā)的工具,支持 C、 C++、匯編等多種開發(fā)語言,提供代碼編輯、編譯、燒錄及調試等一站式開發(fā)體驗。目前支持 ARM Cortex-M0、Cortex-M4、Cortex-M7、Cortex-A7 和 ARM926EJ-S 等芯片架構。
LiteOS Studio 目前已經(jīng)適配了多種開發(fā)板,其中包括 ST、HiSilicon、Fudan Microelectronics 等主流廠商的開發(fā)板。BearPi 基于 ST 的芯片方案,很方便地可以得到 LiteOS Studio 的支持。
3.1 安裝 LiteOS Studio解壓 “小熊派開發(fā)板資料\01軟件資料” 目錄下的 “LiteOS_IDE.zip” 壓縮包 ,雙擊安裝程序,如 圖7 所示, 根據(jù)提示進行安裝。
安裝過程中注意以下幾點:
安裝路徑不能有中文路徑,否則即使安裝成功程序運行也會異常。目前 IDE 只支持 Win7 以上的 64 位操作系統(tǒng),所以安裝前請先確認 Windows 系統(tǒng)版本是否滿足。圖 7 - 安裝 LiteOS Studio
3.2 創(chuàng)建 LiteOS Studio 工程
打開 LiteOS Studio軟件,在首頁上單擊 “創(chuàng)建LiteOS Studio工程”。
圖 8 - 創(chuàng)建 LiteOS Studio 工程
然后 LiteOS Studio 會彈出 “配置工程界面”,此時可以對新創(chuàng)建的工程進行基本配置。
我們采用最簡單的方式進行演示,依次配置如下信息,參考 圖 9 的紅色線框標識:
圖 9 - 配置 LiteOS Studio 工程信息
LiteOS SDK 版本:即本工程基于的 LiteOS 的內(nèi)核和中間件的版本,對于 LiteOS 這樣的嵌入式系統(tǒng),應用和內(nèi)核是一起參與編譯的。這里我們使用缺省版本,即 LiteOS Studio 安裝時自帶的一份 SDK 模版。
工程名稱:自己定義,本文填寫為 demo。工程目錄:工程的父目錄,請選擇一個本機存在的目錄即可,本文填寫為 D:\ws\iot-dev。工程類型:選擇 “端云最佳實踐”,這里 LiteOS Studio 自帶了一份配合 BearPi 的樣例工程,我們直接使用即可。配置好后直接點擊 “完成”,需要一些時間,完成后打開 IDE 的界面如下。
圖 10 - LiteOS Studio 界面布局
同時在你指定的 “工程目錄” 下創(chuàng)建名為 demo 的工程子目錄并拷貝了相應的 SDK 和樣板工程的代碼在工程目錄里。
圖 11 - 創(chuàng)建的工程目錄
3.3 配置 LiteOS Studio 工程工程打開后先不要急著編譯,正常流程中還需要先配置一下。菜單選擇 “工程” -> “工程配置”,或者直接點擊工具欄中的圖標如下圖所示。
圖 12 - 配置 LiteOS Studio 工程
彈出如下 “工程配置” 對話框。由于這里我們使用的是樣板工程,這些內(nèi)容已經(jīng)都給我們配置好了,所以可以直接忽略這一步。
圖 13 - LiteOS Studio 工程配置界面
3.4 編譯 LiteOS Studio 工程菜單選擇 “工程” -> “編譯” 或者點擊工具欄上的圖標如下圖所示。
圖 14 - 編譯 LiteOS Studio 工程
編譯會需要一點時間,但相對于 Linux 那樣的大型系統(tǒng)來說還是很快的。編譯完成后顯示 “編譯成功” 以及編譯花費的時間。
圖 15 - 編譯成功
3.5 燒錄 LiteOS Studio 工程無論是運行還是調試,都需要將編譯好的程序先下載(習慣上稱之為 “燒錄”)到開發(fā)板上去。這里我們先確保使用 Micro USB 線將 BearPi 開發(fā)板和 PC 連接好,確保設備管理器上的虛擬串口加載完成(即設備管理器中出現(xiàn) COM 端口,如 圖 4 所示),然后菜單選擇 “工程” -> “燒錄”,或者直接點擊工具欄中的圖標如下圖所示。
圖 16 - 燒錄 LiteOS Studio 工程
等待燒錄完成,界面的控制臺中會輸出整個燒錄過程信息,直到完成后顯示 “燒錄成功”。
圖 17 - 燒錄成功
3.6 調試 LiteOS Studio 工程這里簡單介紹一下如何在 LiteOS 工程中通過串口打印實現(xiàn)日志跟蹤以及如何使用在線調試單步跟蹤。
3.6.1 串口打印調試手段中最基本的就是加打印輸出,LiteOS 也支持通過串口輸出跟蹤信息。下面介紹一下如何配置串口。
注意:如果要確保下面的步驟中能夠在 “串口終端” 中看到打印輸出,需要檢查 BearPi 的 AT 開關,確保其撥到 MCU 一側,如下圖所示。
圖 18 - AT 開關
采用 LiteOS Studio 自帶的串口終端即可接收 MCU 發(fā)送的信息。第一次安裝后缺省不顯示串口終端,通過菜單選擇 “查看” -> “串口終端” 可以將該終端窗口顯示出來。
圖 19 - 顯示串口終端
串口終端顯示后還需要對 LiteOS Studio 做一些串口的基本配置才可以接收串口信息。
點擊下圖中左上側的 “齒輪” 圖標。
圖 20 - 配置串口終端
再次打開 “工程配置” 對話框,選擇 “串口配置” 項后配置如下信息:
圖 21 - 配置串口終端界面
端口:這里選擇在安裝驅動時看到的 COM 的端口值,我這里選擇 COM3。
波特率:115200,缺省不變。數(shù)據(jù)位:8,缺省不變。停止位:1,缺省不變。奇偶(校驗):None,缺省不變。流控:None,缺省不變。此外還可以勾選是否自動將串口輸出的內(nèi)容保存到日志文件中并指定日志文件的存放路徑。
點擊 “確認” 后保存串口配置,但此時串口并未開始工作,需要繼續(xù)參考下圖將端口打開使能。這樣以后我們就可以看到 “串口終端” 中開始有內(nèi)容輸出了,左邊顯示的是可讀的 ASCII 字符信息,右邊顯示的是對應的十六制輸出。之所以存在輸出是因為我們這里演示采用的例子中已經(jīng)有一些調用 printf() 函數(shù)的輸出,以后我們在實驗中也可以通過類似操作在這里查看程序的執(zhí)行過程。
圖 22 - 打開串口
3.6.2 單步跟蹤 LiteOS Studio 工程LiteOS Studio 也支持在線單步調試程序。方法很簡單。首先確保 BearPi 開發(fā)板通過 Micro USB 線連接 PC(這也是我們稱之為 “在線調試” 的原因),并已將需要調試的程序下載燒錄到開發(fā)板中,然后菜單選擇 “調試” -> “開始/繼續(xù)”,或者直接點擊工具欄中的圖標如下圖所示。
圖 23 - 調試 LiteOS Studio 工程
此時調試器會自動加載對應代碼并暫停在整個系統(tǒng)程序的入口處,接下來的操作和我們操作其他的 IDE 類似,這里就不贅述了。
圖 24 - LiteOS Studio 工程調試界面