1. 程式人生 > >華為如何打造物聯網開發新平臺—DevCloud和LiteOS的完美結合

華為如何打造物聯網開發新平臺—DevCloud和LiteOS的完美結合

軟件包 oca 示例代碼 ext 增量 embed 準備 http 下載到本地

華為軟件開發雲(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的完美結合