新聞中心
想了解更多內(nèi)容,請訪問:

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名與空間、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、肅寧網(wǎng)站維護、網(wǎng)站推廣。
和華為官方合作共建的鴻蒙技術(shù)社區(qū)
https://harmonyos.
1. 背景介紹
上回說到在家組裝了一臺鴻蒙小車,但是,還不會玩,準備燒個鴻蒙系統(tǒng)體驗一下?!而櫭膳阄?們)過大年~》
但是,折騰了一天發(fā)現(xiàn),這個小車其實是已經(jīng)內(nèi)置鴻蒙系統(tǒng)了。
小車通電以后,顯示屏上會快速顯示:Hello Harmony,然后變成 Robot Car Stop。
如果按小車的按鍵1,小車就會自動向前走,同時顯示屏上顯示:trace
再多按幾次,顯示屏?xí)霈F(xiàn)“ultrasonic”字樣,但是我還沒有發(fā)現(xiàn)這個超聲波的作用。
經(jīng)過我一番胡亂摸索,大概知道了各個模塊的基本功能。
其中,小車的左上角的模塊是主控模塊,插上Type-C線以后,可以對小車進行調(diào)試和供電,就不需要電池了。
小車已經(jīng)就位,下一步,就是試著寫一個hello world了。
在的鴻蒙社區(qū)以及鴻蒙官網(wǎng)上找了好幾圈,發(fā)現(xiàn)還是連老師的資料最完整,最后折騰了一天,終于完成了第一個Hello World。
2. 參考文獻
作為一個沒有開發(fā)過南向設(shè)備應(yīng)用的北向應(yīng)用開發(fā)者,面對這么一個小車,是既興奮又懵逼的狀態(tài)。
好在的鴻蒙社區(qū)分享的開發(fā)者很多,而華為的鴻蒙開發(fā)者網(wǎng)站的資料也非常的全,尤其是連志安老師的鴻蒙設(shè)備開發(fā)的系列文章,讓我能夠摸著石頭過河,并最終實現(xiàn)一個小目標。
在此非常感謝。
對于鴻蒙設(shè)備開發(fā)的新新新手,推薦以下資料,建議詳細閱讀:
- 連老師《第1~2章 鴻蒙系統(tǒng)介紹 和 編譯環(huán)境搭建 持續(xù)更新 》
- 鴻蒙開發(fā)網(wǎng)站《HUAWEI DevEco Device Tool使用指南》
- 鴻蒙開發(fā)網(wǎng)站 《Hi3861搭建環(huán)境》
3. 調(diào)試筆記
接下來,我整理一下自己摸索的筆記,作為嵌入式開發(fā)0經(jīng)驗的非專業(yè)設(shè)備開發(fā)者,有些名詞表述不專業(yè),敬請見諒。
3.1. 環(huán)境搭建
目前鴻蒙設(shè)備的開發(fā)環(huán)境,可以分為2個部分:Windows調(diào)試環(huán)境,和Linux編譯環(huán)境。
其中,
- Linux環(huán)境負責(zé)編譯代碼,并生成鴻蒙的包。
- Windows環(huán)境負責(zé)連接設(shè)備,進行燒錄和調(diào)試。
特別注意,Linux環(huán)境不可少,因為目前只支持在Linux環(huán)境下編譯,不信邪,強行在Windows上編譯的結(jié)果就是:
3.2. Windows開發(fā)環(huán)境搭建
安裝開發(fā)工具
Windows環(huán)境需要的工具列表:
- Visual Studio Code
- Python v3.7/v3.8
- Node.js v12.0.0+
- hpm
- DevEco Device Tool
詳情可以參考鴻蒙開發(fā)者網(wǎng)站: 《Windows開發(fā)環(huán)境準備》
一些要點
- 1). 建議按照列表的順序安裝各個工具
- 2). Python只能是3.7 或者3.8,否則會導(dǎo)致DevEco Device Tool無法安裝
- 3). Node.js 需要 v12 以上
- 4). hpm安裝完畢以后,需要設(shè)置一個特殊權(quán)限,否則在執(zhí)行的時候,會報錯“無法加載文件”
可以通過在命令行里用管理員執(zhí)行 “set-executionpolicy remotesigned”來解決。
參考:《Windows 鴻蒙環(huán)境搭建 hpm 報錯:無法加載文件 hpm.ps1,因為在此系統(tǒng)上禁止運行腳本》
- 5). 打開VSCode,看到這個畫面,表示所需的工具安裝成功。
安裝USB驅(qū)動
用USB線將小車連接到電腦后,可以先到系統(tǒng)的設(shè)備里查看一下,是否能找到對應(yīng)的設(shè)備。
如果出現(xiàn)了感嘆號,表示需要安裝相關(guān)的驅(qū)動。
參考開發(fā)者文檔《Hi3861系列開發(fā)板串口驅(qū)動安裝》
步驟:
- 1). 下載驅(qū)動
http://www.wch.cn/search?q=ch340g&t=downloads
- 2). 安裝
- 3). 檢查,在設(shè)備管理器里看到USB-SERIAL CH340,表示識別成功。
- 4). 在VSCode里檢查,DevEco Home -> Devices 可以看到跟設(shè)備管理器里一樣名字的設(shè)備,注意對應(yīng)的COM口編號。
3.3. 安裝Linux編譯環(huán)境
這個可以參考 《Ubuntu開發(fā)環(huán)境準備》,從文檔里可以看到,所需的開發(fā)工具跟Windows是一致的。
我本來想自己裝一個Ubuntu,但是發(fā)現(xiàn)速度有點慢,就直接用了連老師給的虛擬機了。建議用百度網(wǎng)盤的虛擬機,這個已經(jīng)預(yù)裝了samba服務(wù)。
- 百度網(wǎng)盤
- 鏈接:https://pan.baidu.com/s/163JxuvZux01Fd407_WbK-g
- 提取碼:bny6
連老師給的虛擬機是VMWare格式的,可以用VMWare的Player直接打開。
關(guān)于Linux虛擬機的詳情,具體的可以看連老師的文章,這里只列幾個要點:
- 0). 虛擬機的賬號是 harmony,密碼 123456
- 1). 使用VMWare Player打開虛擬機以后,需要安裝VMWare Tools才可以調(diào)整虛擬機窗口的大小。
- 2). 首次開機后,需要手動啟動samba服務(wù),運行 "sudo service smbd start"
- 3). 開機后,運行 ifconfig -a 查看 ip
3.4. Windows連接Linux
利用已經(jīng)安裝好的samba服務(wù),Windows可以很方便的訪問Linux中的文件:
- 在文件瀏覽器,而不是IE瀏覽器的地址欄中,輸入 \\\\
- 或者
- 通過網(wǎng)上鄰居查找也可以。
通過在Windows的VSCode中打開Linux中的鴻蒙項目,就可以把Linux環(huán)境中編譯好的鴻蒙包,在Windows下燒錄到鴻蒙小車中。
另,連老師還很貼心地建議映射成網(wǎng)絡(luò)驅(qū)動器,比如我就把它映射成了Y盤。
3.5. 燒錄第一個鴻蒙系統(tǒng)
1). 打開鴻蒙項目
在Windows的VSCode中,打開Linux環(huán)境下的鴻蒙源碼目錄,在 harmony\code\code-1.0文件夾
如果提示這不是一個鴻蒙項目,選擇“繼續(xù)打開”,即可。
2). 配置項目
DevEco Home -> Projects -> Settings
配置好upload_port為剛剛在設(shè)備管理器看到的COM口,如果只連了一個鴻蒙設(shè)備,直接從列表里選中就可以了。
其他upload_protocol和upload_partitions沒什么可選的,按照截圖別放空就好。
記得保存Save。
然后點Open打開項目,留意左邊第二列的PROJECT TASKS,這是一系列快捷指令,接下去的操作要用到這些指令。
另外,這個地方,與鴻蒙開發(fā)者網(wǎng)站的截圖略有不同,我找了好久也沒有找到官網(wǎng)圖示的位置,好在不影響hello world。
3). 編譯Build
前邊說過,直接在Windows的VSCode里執(zhí)行build,是不可以的。
連老師的這個虛擬機貌似是沒有裝VSCode的,但是支持從命令行進行編譯。
所以,編譯可以直接在Linux虛擬機上進行,也可以選擇在Windows上利用ssh連接到Linux來進行。
具體的做法是,
- 打開控制臺
- 進入到項目目錄下
- 執(zhí)行編譯命令
- python build.py wifiiot
看到這段日志,表示編譯成功:
4). 燒錄
燒錄可以在Windows上進行,從剛剛的PROJECT TASKS中執(zhí)行Upload指令即可。
出現(xiàn)Connecting, please reset device的日志時,在30秒內(nèi),按一下小車的系統(tǒng)復(fù)位鍵(RST):
如果動作太慢,燒錄指令就會失敗。否則,應(yīng)該能看到日志繼續(xù)刷新,直到出現(xiàn)SUCCESS字樣,表示燒錄成功。
怎么知道燒錄成功了呢?
還記得小車顯示屏上顯示的文字嗎?
如果現(xiàn)在看不到了,那就表示你把原來自帶的鴻蒙系統(tǒng)給覆蓋了,說明燒錄成功了……
3.6. 編寫HelloWorld
但是,這還沒有完,因為我們還沒有寫HelloWorld。
參考:《開發(fā)Hi3861第二個示例程序》
1). 添加HelloWorld App目錄
切換到Explorer模式,查看文件列表。
在code-1.0/applications/sample/wifi-iot/app目錄下,創(chuàng)建一個helloworld目錄
2). 添加c代碼
創(chuàng)建一個hello_world.c文件,內(nèi)容如下:
- #include
- #include "ohos_init.h"
- #include "ohos_types.h"
- void HelloWorld(void)
- {
- printf("[DEMO] Hello world.\n");
- }
- SYS_RUN(HelloWorld);
3). 添加HelloWorld配置文件
創(chuàng)建一個BUILD.gn文件,內(nèi)容如下:
- static_library("helloworld") {
- sources = [
- "hello_world.c"
- ]
- include_dirs = [
- "http://utils/native/lite/include"
- ]
- }
4). 添加HelloWorld作為應(yīng)用啟動入口
修改 code-1.0/applications/sample/wifi-iot/app/BUILD.gn
- import("http://build/lite/config/component/lite_component.gni")
- # 舊的
- #lite_component("app") {
- # features = [
- # "startup",
- # ]
- #}
- # 新的
- lite_component("app") {
- features = [
- "helloworld:helloworld",
- ]
- }
5). 重新編譯并燒錄
修改完,保存,重新編譯,并燒錄。
雖然我們嘗試在輸出hello world日志,但是,這個日志并不會出現(xiàn)在小車的顯示屏上,也不會直接出現(xiàn)在VSCode的Output里。
6). 查看Hello World
要想看到hello world的輸出,需要讀取串口的數(shù)據(jù)。
參考:《串口工具使用》
在VSCode的命令行里,按下Ctrl+T,然后選擇目標COM口序號,這里就一個COM,所以按下1
然后按下小車的系統(tǒng)復(fù)位鍵(RST),系統(tǒng)會重啟,然后就可以看到 Hello World了。
至此,Hello World的任務(wù)就完成了。
想了解更多內(nèi)容,請訪問:
和華為官方合作共建的鴻蒙技術(shù)社區(qū)
https://harmonyos.
新聞標題:嵌入式開發(fā)小白跟連老師學(xué)鴻蒙設(shè)備開發(fā)之HelloWorld
文章分享:http://www.dlmjj.cn/article/djeepop.html


咨詢
建站咨詢
