華為如何打造物聯網開發新平臺—DevCloud和LiteOS的完美結合
華為雲軟件開發雲(DevCloud)是集華為30年研發實踐、前沿研發理念、先進研發工具,打造的一站式雲端Devops平臺,支持互聯網開發、移動應用開發、微服務開發等主流研發場景,也同樣支持物聯網相關嵌入式開發場景。目前,在Devcloud代碼托管平臺,已經開放了LiteOS示例代碼,開發團隊或開發者可以申請Devcloud賬號,下載該代碼,在此基礎上增量開發。
LiteOS是華為開源出來的輕量級實時操作系統,由Huawei LiteOS kernel、互聯互通中間件、開放API以及安全組成,特性如下:
1.超小內核,基礎內核可剪裁至不到10KB
2.低功耗(uA級別)
3.支持多種傳輸協議,wifi,BT,4G,NB-IOT等
4.從芯片,內核、傳輸保障E2E安全
5.支持多種芯片
6.開放API
我們可以在LiteOS的基礎上進行物聯網應用開發,像智能穿戴,車聯網等。
環境準備
本文將使用Devcloud平臺開發一個LCD顯示功能,需要預先準備硬件設備和軟件設備:
?STM32F4291-DISCO單板 STM32開發板(芯片型號STM32F429ZIT6)
?開發板供電(使用Mini USB連接線)
?STM32 ST-LINK Utility軟件 自帶ST-Link驅動,用於加載,燒寫代碼。
https://my.st.com/content/my_st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/stsw-link004.license%3d1513163277956.html
1.項目管理
在Devcloud工作服務下,以思維導圖的形式將開發任務細化成story
2.代碼托管
如果想將LiteOS在一款新的芯片上運行起來,需要根據芯片硬件參數,修改LiteOS kenerl等等相關文件,Devcloud的示例代碼中內核源碼已適配好STM32F411芯片,本文將以STM32F429ZI芯片為例,介紹基Cortex M4核芯片的開發過程,本文將在STM32F429ZI單板LCD屏幕上顯示文字。
3.代碼檢查
通過靜態代碼檢查規則,發現代碼中是否有內存溢出,全復雜度過高,代碼重復率高的問題,該代碼發現重復率太高,將部分重復代碼抽象成公共接口或函數供各個地方調用,提高代碼後期可維護性。
4.編譯構建
使用cmake進行一鍵構建,雲端直接打包成bin包。
雲端編譯構建的好處很多,首先不必下載交叉編譯鏈,如果在本地centos上完成此工程構建,需要增加如下步驟:
i.下載交叉編譯工具鏈
https://launchpad.net/gcc-arm-embedded/+download
ii.安裝
a)安裝路徑
cd opt
b)解壓
tar jxvf gcc-arm-none-eabi-5_4-2016q3.tar.bz2 -C /opt
c)修改環境變量
vim /etc/profile
添加export PATH=/opt/gcc-arm-none-eabi-5_4-2016q3/bin:$PATH
d)使新的環境變量生效
source /etc/profile
reboot(選擇)
e)檢查路徑添加是否成功
echo $PATH
iii.開發環境適配
項目中,嵌入式平臺采用32位操作系統,應用服務程序采用64位操作系統,項目開發中,需要將兩種開發環境,在同一臺物理機上實現。
嵌入式開發環境構建時,安裝交叉編譯環境,需要32位開發庫。
$sudo yum install xulrunner.i686
$sudo yum install libXtst.i686
雲上編譯就省去了上述麻煩,只需創建一個cmake任務就可以了。
5.軟件包歸檔
6.本地燒寫
將雲端的軟件包下載到本地,連接STM開發板,使用ST-LINK工具加載燒寫
7.查看效果
華為如何打造物聯網開發新平臺—DevCloud和LiteOS的完美結合