華為云軟件開(kāi)發(fā)云(DevCloud)是集華為30年研發(fā)實(shí)踐峰锁、前沿研發(fā)理念艇潭、先進(jìn)研發(fā)工具回还,打造的一站式云端Devops平臺(tái)裆泳,支持互聯(lián)網(wǎng)開(kāi)發(fā)、移動(dòng)應(yīng)用開(kāi)發(fā)柠硕、微服務(wù)開(kāi)發(fā)等主流研發(fā)場(chǎng)景工禾,也同樣支持物聯(lián)網(wǎng)相關(guān)嵌入式開(kāi)發(fā)場(chǎng)景。目前蝗柔,在Devcloud代碼托管平臺(tái)闻葵,已經(jīng)開(kāi)放了LiteOS示例代碼,開(kāi)發(fā)團(tuán)隊(duì)或開(kāi)發(fā)者可以申請(qǐng)Devcloud賬號(hào)诫咱,下載該代碼笙隙,在此基礎(chǔ)上增量開(kāi)發(fā)洪灯。
LiteOS是華為開(kāi)源出來(lái)的輕量級(jí)實(shí)時(shí)操作系統(tǒng)坎缭,由Huawei LiteOS kernel、互聯(lián)互通中間件签钩、開(kāi)放API以及安全組成掏呼,特性如下:
1.超小內(nèi)核,基礎(chǔ)內(nèi)核可剪裁至不到10KB
2.低功耗(uA級(jí)別)
3.支持多種傳輸協(xié)議铅檩,wifi憎夷,BT,4G昧旨,NB-IOT等
4.從芯片拾给,內(nèi)核、傳輸保障E2E安全
5.支持多種芯片
6.開(kāi)放API
我們可以在LiteOS的基礎(chǔ)上進(jìn)行物聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)兔沃,像智能穿戴蒋得,車(chē)聯(lián)網(wǎng)等。
環(huán)境準(zhǔn)備
本文將使用Devcloud平臺(tái)開(kāi)發(fā)一個(gè)LCD顯示功能乒疏,需要預(yù)先準(zhǔn)備硬件設(shè)備和軟件設(shè)備:
?STM32F4291-DISCO單板 STM32開(kāi)發(fā)板(芯片型號(hào)STM32F429ZIT6)
?開(kāi)發(fā)板供電(使用Mini USB連接線)
?STM32 ST-LINK Utility軟件 自帶ST-Link驅(qū)動(dòng)额衙,用于加載,燒寫(xiě)代碼。
1.項(xiàng)目管理
在Devcloud工作服務(wù)下窍侧,以思維導(dǎo)圖的形式將開(kāi)發(fā)任務(wù)細(xì)化成story
2.代碼托管
如果想將LiteOS在一款新的芯片上運(yùn)行起來(lái)县踢,需要根據(jù)芯片硬件參數(shù),修改LiteOSkenerl等等相關(guān)文件伟件,Devcloud的示例代碼中內(nèi)核源碼已適配好STM32F411芯片硼啤,本文將以STM32F429ZI芯片為例,介紹基Cortex M4核芯片的開(kāi)發(fā)過(guò)程锋爪,本文將在STM32F429ZI單板LCD屏幕上顯示文字丙曙。
3.代碼檢查
通過(guò)靜態(tài)代碼檢查規(guī)則,發(fā)現(xiàn)代碼中是否有內(nèi)存溢出其骄,全復(fù)雜度過(guò)高亏镰,代碼重復(fù)率高的問(wèn)題,該代碼發(fā)現(xiàn)重復(fù)率太高拯爽,將部分重復(fù)代碼抽象成公共接口或函數(shù)供各個(gè)地方調(diào)用索抓,提高代碼后期可維護(hù)性。
4.編譯構(gòu)建
使用cmake進(jìn)行一鍵構(gòu)建毯炮,云端直接打包成bin包逼肯。
云端編譯構(gòu)建的好處很多,首先不必下載交叉編譯鏈桃煎,如果在本地centos上完成此工程構(gòu)建篮幢,需要增加如下步驟:
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)修改環(huán)境變量
vim /etc/profile
添加export PATH=/opt/gcc-arm-none-eabi-5_4-2016q3/bin:$PATH
d)使新的環(huán)境變量生效
source /etc/profile
reboot(選擇)
e)檢查路徑添加是否成功
echo $PATH
iii.開(kāi)發(fā)環(huán)境適配
項(xiàng)目中,嵌入式平臺(tái)采用32位操作系統(tǒng)为迈,應(yīng)用服務(wù)程序采用64位操作系統(tǒng)三椿,項(xiàng)目開(kāi)發(fā)中,需要將兩種開(kāi)發(fā)環(huán)境葫辐,在同一臺(tái)物理機(jī)上實(shí)現(xiàn)搜锰。
嵌入式開(kāi)發(fā)環(huán)境構(gòu)建時(shí),安裝交叉編譯環(huán)境耿战,需要32位開(kāi)發(fā)庫(kù)蛋叼。
$sudo yum install xulrunner.i686
$sudo yum install libXtst.i686
云上編譯就省去了上述麻煩,只需創(chuàng)建一個(gè)cmake任務(wù)就可以了剂陡。
5.軟件包歸檔
6.本地?zé)龑?xiě)
將云端的軟件包下載到本地狈涮,連接STM開(kāi)發(fā)板,使用ST-LINK工具加載燒寫(xiě)
7.查看效果