成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

手把手教你搭建鴻蒙hi3518開發和運行環境

開發
學習C語言,C++語言,數據結構和算法,操作系統,網絡,驅動,設計模式等知識,用鴻蒙來強化就太對了。本文教你一步一步搭建鴻蒙的開發和運行環境,有點啰嗦,適合小白。

[[375671]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

前言

學習C語言,C++語言,數據結構和算法,操作系統,網絡,驅動,設計模式等知識。

用鴻蒙來強化就太對了。本文教你一步一步搭建鴻蒙的開發和運行環境,有點啰嗦,適合小白。

本文所涉及的所有工具都可以在這里找到(提取碼pbe2)。

具體有下列步驟:

  • 組裝開發板
  • 連接開發板
  • 安裝串口驅動
  • 安裝USB驅動
  • 安裝燒錄工具
  • 擦除引導程序
  • 燒錄系統
  • 登錄開發板
  • 修改OS啟動地址
  • 運行可執行程序
  • 安裝VMWARE
  • 安裝編譯服務器
  • 訪問編譯服務器
  • 編譯鴻蒙產品
  • 編譯鴻蒙組件
  • 打通開發板網絡
  • 部署NFS
  • 新增自定義組件

組裝開發板

我們選用HiSpark IPC DIY Camera產品。內部含hi3518ev300芯片。

請參考產品的安裝說明書。

或者參考安裝視頻指導。

連接開發板

開發板和PC的連接關系如下圖。2條usb線(產品包裝中的),其中一個三針插頭,一個四針插頭。



安裝串口驅動

請雙擊USB-to-Serial Comm Port.exe。進行串口驅動安裝,安裝完成后。在設備管理器中應該能看到下面這樣的COM接口,你的COM接口編號可能有所不同。表明串口驅動安裝成功。


安裝USB驅動

然后雙擊zadig-2.5.exe安裝通用USB驅動,點擊中間的Install。


安裝燒錄工具

直接解壓HiTool-HM-5.4.9-win32-x86_64.zip文件。然后雙擊其中的HiTool.exe. 界面如下圖。然后先將芯片切換到3518ev300。


擦除引導程序

然后就是擦除uboot了,記得使用串口來擦除。


有幾點需要注意

由于編譯服務器還沒有創建,所以我把自己編譯好的文件放網上了,你可以下載。

文件路徑根據你自己的實際路徑,下載下來后存放的位置。

COM口根據你之前設備管理器看到的那個CH340口選擇。

確保頂部選中的芯片是3518ev300。

傳輸方式選擇串口。

按分區燒寫。

器件類型spi nor。

開始地址0,長度1M。

點擊擦除后10秒內拔插usb電源線接口(即接4個針腳的那個usb口,小的那個usb頭),讓板子重啟。

很快就能看到擦除成功的提示。


燒錄系統


主要注意如下幾點:

使用usb口燒錄(不是串口)。

現在需要燒錄4個文件(通過右側綠色+可以添加文件)。

每個文件的名稱,器件類型,地址,長度要填寫正確。

最后點擊燒寫。

然后等待燒寫成功。


如果你的燒寫不成功,請檢查之前的usb驅動是否已安裝。

登錄開發板

鴻蒙系統燒錄好以后,就可以進去看一下鴻蒙系統的模樣了。

雙擊MobaXterm_Personal_20.2.exe. 也可以用你自己喜歡的終端工具

然后點擊Session, 在彈出的窗口中填好相關字段


點擊OK以后,會進入下面這個界面。


這里是uboot程序的界面,還沒有進入鴻蒙OS,原因是uboot此時不知道鴻蒙OS的啟動地址。

然后我們設置啟動地址

設置OS啟動地址

setenv bootcmd "sf probe 0;sf read 0x40000000 0x100000 0x600000;go 0x40000000";

setenv bootargs "console=ttyAMA0,115200n8 root=flash fstype=jffs2 rw rootaddr=7M rootsize=8M";

保存配置

saveenv

然后重啟


然后,很快就可以看到鴻蒙OS起來了。


如果你沒有看到OHOS#字樣,請按下幾次enter鍵。接下來,我們手動運行一個鴻蒙的程序。

運行可執行程序

進入bin目錄,運行writer程序(這個程序是我新增的,如果你的開發板上沒有,你可以運行./camera_app程序)。


創建編譯服務器

為了省去搭建編譯環境的繁瑣,本次將一個已經搭建好的編譯服務器制作成鏡像。我們只需要使用這個鏡像即可獲得編譯環境。

鏡像文件比較大(超過8G),請直接找老師獲取,也可以去前言提到的地方下載(建議晚上睡覺時下載)。

本次使用的Ubuntu是不帶桌面環境的。內部已經安裝好HarmonyOS的編譯環境,并且安裝了samba文件共享工具。方便windows訪問。

請先安裝VMWARE WorkStation軟件

然后打開它, 選擇 文件-->打開



然后開始了服務器創建過程,這個過程比較漫長,請保持耐心。

訪問服務器

服務器創建完成后。然后我們對它進行上電啟動


等待服務器開機。1分鐘內一般就能正常起來。這個過程中,注意保持網線插入,因為虛擬機和PC之間是通過有線網卡橋接的。啟機過程有軟件會探測網絡是否在,否則會很慢。

當屏幕輸出變慢后,我們就可以訪問它了,當然也可以在黑窗口里面直接鍵入各種命令,不過不方便。


把鼠標放入黑窗口,點擊以后,鼠標焦點就進入黑窗口了,讓焦點退出來的方法是按CTRL+g。

如果想在黑窗口操作linux相關命令,則鍵入用戶名compile 密碼compile。

一般我們不在黑窗口操作。

我們需要如下2種方法來訪問虛擬機:

  • 通過ssh訪問,即可以遠程登錄虛擬機的shell,并執行命令。
  • 通過文件共享訪問,可以在windows上查看和修改虛擬機中的文件。

注意:

當前創建的虛擬機采用的是橋接模式,它的IP地址為192.168.2.20。你需要確保虛擬機中的IP地址和自己PC的IP地址在同一個網段。(最簡單的方法是在自己的網卡上添加一個192.168.2.X網段的IP地址)。Windows添加IP地址的方法請自行查閱。

如果多臺編譯服務器在同一個局域網絡,那么IP地址會沖突,因為都是192.168.2.20。所以,需要對地址進行修改。

SSH訪問


點擊OK以后,就登錄到了編譯服務器的shell。


文件共享訪問

為了從Windows訪問編譯服務器上的源代碼和編譯出的目標文件,在編譯服務器上已經安裝好了samba文件共享服務,只需要在windows這邊映射網絡驅動器即可。按如下方法操作。


右鍵點擊 計算機 ,選擇映射網絡驅動器。


然后就可以在windows看到編譯服務器上的內容了。

現在開始,你就可以像操作windows的文件一樣來操作編譯服務器里面的文件了(比如通過Visual Studio來修改服務器上的C/C++代碼文件)。

編譯產品

整個工程是存放在~/harmonyos/openharmony目錄,得先進入這個目錄。

然后執行python腳本來編譯產品。如下紅色框即編譯整個產品。


特別提醒:

python build.py ipcamera_hi3518ev300 -b debug

編譯debug版本才會含有調試的shell,如果省略-b debug,無法通過shell命令行執行命令。

大約需要10多分鐘完成產品編譯,編譯成功后,結果如下。


然后在windows文件夾下可以看到編譯出來的結果。


每次系統燒錄時,將上述3個文件以及uboot文件(Z:\vendor\hisi\hi35xx\hi3518ev300\uboot\out\boot\u-boot-hi3518ev300.bin)

拷貝到windows某個目錄下(比如我的例子中的D:\BIN),然后用HiTool.exe來燒錄。

更新源碼

鴻蒙系統目前更新比較頻繁,如果需要獲取最新版本,請執行下面的命令更新源碼。

這里有一個問題:編譯服務器預設的192.168.2.20無法上網。這個時候你可以再添加1個IP地址(添加可以上網的IP地址)。然后再執行下面2條命令

cd ~/harmonyos/openharmony

repo sync -c

。。。待貼圖。。。

編譯組件

編譯完整產品比較耗時,大多數時候我們修改的代碼較少,只需要編譯指定的組件就行了。

由-T指定編譯一個已經存在的組件,只編譯一個小組件,速度飛快。


注意,編譯組件的時候 -T 后面的路徑需要使用全路徑。如何確定-T后面的參數?請看下圖:

文本編輯器(如notepad++)打開build/lite/product/ ipcamera_hi3518ev300.json文件


這個組件涉及的代碼文件是哪些呢,繼續看對應目錄的BUILD.gn文件,對于此例子為//applications/sample/camera/app


生成的程序在下面這個目錄


打通網絡

設備本身沒有以太口,只有wifi接口。但默認情況下wifi是無法工作的。

輸入ifconfig你會看到wlan0接口IP地址為0。


需要做如下工作才能讓wifi正常運行起來。

  • 配置SSID和密碼
  • 修改wpa_sample.c源碼
  • 配置自啟動
  • 編譯系統

配置SSID和密碼

修改applications\sample\camera\communication\wpa_supplicant\config\ wpa_supplicant.conf。

修改后的內容如下。這個文件的目的是配置wifi用戶名和密碼。

  1. country=GB 
  2.  
  3. ctrl_interface=udp 
  4.  
  5. network={ 
  6.  
  7.         ssid="teacher" 
  8.  
  9.         psk="12345678qwe" 
  10.  
  11.     } 

 注意

  • =號2端不要留空格。
  • ssid和psk按你自己的實際進行配置,比如你手機熱點的網絡名和密碼。

修改源碼

修改applications\sample\camera\communication\wpa_supplicant\src\wpa_sample.c源代碼。

只修改main函數部分。這個程序的目的是讀取wifi用戶名和密碼配置文件,并進行wifi連接。

  1. int main(int argc, char *argv[]) 
  2.  
  3.  
  4. g_wpaArgc = argc; 
  5.  
  6. for (int i = 0; i < g_wpaArgc; i++) { 
  7.  
  8. g_wpaArg[i] = argv[i]; 
  9.  
  10.  
  11. g_wpaArgc=5; 
  12.  
  13. g_wpaArg[1] = "-i"
  14.  
  15. g_wpaArg[2]="wlan0"
  16.  
  17. g_wpaArg[3]="-c"
  18.  
  19. g_wpaArg[4]="/etc/wpa_supplicant.conf"
  20.  
  21. int ret = pthread_create(&g_wpaThread, NULL, ThreadMain, NULL); 
  22.  
  23. if (ret != 0) { 
  24.  
  25. printf("[WpaSample]create thread failed error:%s.\n", strerror(ret)); 
  26.  
  27. return 1; 
  28.  
  29.  
  30. pthread_join(g_wpaThread, NULL); 
  31.  
  32. return 0; 
  33.  

 配置自啟動

剛才修改的main會生成一個可執行程序,這個程序我們需要把它配置在啟動腳本中,這樣每次板子重啟都會運行這個程序。

修改文件vendor\huawei\camera\init_configs\ init_liteos_a_3518ev300.cfg 。 紅色部分為新增。

  1.  
  2. "jobs" : [{ 
  3.  
  4. "name" : "pre-init"
  5.  
  6. "cmds" : [ 
  7.  
  8. "mkdir /storage/data/log"
  9.  
  10. "chmod 0755 /storage/data/log"
  11.  
  12. "chown 4 4 /storage/data/log"
  13.  
  14. "mkdir /storage/data/softbus"
  15.  
  16. "chmod 0700 /storage/data/softbus"
  17.  
  18. "chown 7 7 /storage/data/softbus"
  19.  
  20. "mkdir /sdcard"
  21.  
  22. "chmod 0777 /sdcard"
  23.  
  24. "mount vfat /dev/mmcblk0 /sdcard rw,umask=000"
  25.  
  26. "mount vfat /dev/mmcblk1 /sdcard rw,umask=000" 
  27.  
  28.  
  29. }, { 
  30.  
  31. "name" : "init"
  32.  
  33. "cmds" : [ 
  34.  
  35. "start shell"
  36.  
  37. "start apphilogcat"
  38.  
  39. "start foundation"
  40.  
  41. "start bundle_daemon"
  42.  
  43. "start media_server"
  44.  
  45. "start appspawn"
  46.  
  47. "start wpa_supplicant" 
  48.  
  49.  
  50. }, { 
  51.  
  52. "name" : "post-init"
  53.  
  54. "cmds" : [ 
  55.  
  56. "chown 0 99 /dev/dev_mgr"
  57.  
  58. "chown 0 99 /dev/hdfwifi"
  59.  
  60. "chown 0 99 /dev/gpio"
  61.  
  62. "chown 0 99 /dev/i2c-0"
  63.  
  64. "chown 0 99 /dev/i2c-1"
  65.  
  66. "chown 0 99 /dev/i2c-2"
  67.  
  68. "chown 0 99 /dev/uartdev-0"
  69.  
  70. "chown 0 99 /dev/uartdev-1"
  71.  
  72. "chown 0 99 /dev/uartdev-2"
  73.  
  74. "chown 0 99 /dev/spidev0.0"
  75.  
  76. "chown 0 99 /dev/spidev1.0"
  77.  
  78. "chown 0 99 /dev/spidev1.1" 
  79.  
  80.  
  81.  
  82. ], 
  83.  
  84. "services" : [{ 
  85.  
  86. "name" : "foundation"
  87.  
  88. "path" : "/bin/foundation"
  89.  
  90. "uid" : 7, 
  91.  
  92. "gid" : 7, 
  93.  
  94. "once" : 0, 
  95.  
  96. "importance" : 1, 
  97.  
  98. "caps" : [10, 11, 12, 13] 
  99.  
  100. }, { 
  101.  
  102. "name" : "shell"
  103.  
  104. "path" : "/bin/shell"
  105.  
  106. "uid" : 2, 
  107.  
  108. "gid" : 2, 
  109.  
  110. "once" : 0, 
  111.  
  112. "importance" : 0, 
  113.  
  114. "caps" : [4294967295] 
  115.  
  116. }, { 
  117.  
  118. "name" : "appspawn"
  119.  
  120. "path" : "/bin/appspawn"
  121.  
  122. "uid" : 1, 
  123.  
  124. "gid" : 1, 
  125.  
  126. "once" : 0, 
  127.  
  128. "importance" : 0, 
  129.  
  130. "caps" : [2, 6, 7, 8, 23] 
  131.  
  132. }, { 
  133.  
  134. "name" : "apphilogcat"
  135.  
  136. "path" : "/bin/apphilogcat"
  137.  
  138. "uid" : 4, 
  139.  
  140. "gid" : 4, 
  141.  
  142. "once" : 1, 
  143.  
  144. "importance" : 0, 
  145.  
  146. "caps" : [] 
  147.  
  148. }, { 
  149.  
  150. "name" : "media_server"
  151.  
  152. "path" : "/bin/media_server"
  153.  
  154. "uid" : 5, 
  155.  
  156. "gid" : 5, 
  157.  
  158. "once" : 1, 
  159.  
  160. "importance" : 0, 
  161.  
  162. "caps" : [] 
  163.  
  164. }, { 
  165.  
  166. "name" : "wms_server"
  167.  
  168. "path" : "/bin/wms_server"
  169.  
  170. "uid" : 6, 
  171.  
  172. "gid" : 6, 
  173.  
  174. "once" : 1, 
  175.  
  176. "importance" : 0, 
  177.  
  178. "caps" : [] 
  179.  
  180. }, { 
  181.  
  182. "name" : "bundle_daemon"
  183.  
  184. "path" : "/bin/bundle_daemon"
  185.  
  186. "uid" : 8, 
  187.  
  188. "gid" : 8, 
  189.  
  190. "once" : 0, 
  191.  
  192. "importance" : 0, 
  193.  
  194. "caps" : [0, 1] 
  195.  
  196. },{ 
  197.  
  198. "name""wpa_supplicant"
  199.  
  200. "path""/bin/wpa_supplicant"
  201.  
  202. "uid" : 0, 
  203.  
  204. "gid" : 0, 
  205.  
  206. "once" : 1, 
  207.  
  208. "importance" : 0, 
  209.  
  210. "caps": [] 
  211.  
  212.  
  213.  

 編譯系統

此時我們配置好了wifi用戶名和密碼,也修改了wifi啟動程序并設置好了啟動腳本。接下來我們把這些修改編譯到系統中,然后再燒錄到板子上。

當完整編譯系統,燒錄好以后,新版本的系統起來以后,我們可以看到wlan0 的接口的IP地址正常獲取到了。


部署NFS

當網絡打通以后,我們就可以部署NFS(網絡文件系統)了。部署NFS最大的好處是,可以將windows的某個文件夾當成開發板上的文件夾來使用,這樣,不需要把編譯的程序手動拷貝到開發板去,就可以執行編譯出來的程序。

主要分為如下3個過程:

  1. 安裝NFS Server
  2. 配置和啟動Server
  3. 掛載NFS

安裝NFS

在PC上安裝NFS服務器。雙擊nfs1169.exe進行安裝,同常規軟件安裝方法。

配置NFS

安裝好以后,就是配置了,這一步稍微麻煩。首先需要以管理員身份運行NFS服務器。

開始-->所有程序-->haneWIN軟件-->NFS-->NFS服務器(右鍵點擊)--選擇(以管理員身份運行)。


編輯輸出表文件。如下。


然后保存。

然后我們配置防火墻,使得NFS相關的網絡通信暢通。先看需要放行哪些端口。


需要放行的端口有: 111, 1058, 2049. TCP和UDP都需要。

然后我們配置放行這些端口(即允許這些端口的流量通過)。

控制面板\系統和安全\Windows 防火墻。

 



確保規則已配置好。然后重啟防火墻(關閉防火墻,再打開防火墻)。


重啟NFS

開始---所有程序---haneWIN軟件---NFS---重啟所有服務(以管理員身份運行)。

掛載NFS

在開發板shell界面,掛載NFS。

先確保開發板和PC之間能互通(可以從PC ping開發板)。我的開發板和PC都通過wifi連接手機熱點,所以在一個網段,能互相ping通。

然后開發板上面執行下面的命令。


除了IP地址調整成你PC的地址,其它信息照抄。掛載成功會顯示finished如紅框所示。

然后我們就可以執行windows上的程序了。


在我的機器上,上述文件存放在d:\BIN目錄。因為這個目錄我配置成了NFS Server的根目錄。

所以,能從開發板上看到并運行它們。

上述這些內容,是通過從編譯服務器拷貝出來的。如何拷貝,請參閱訪問虛擬機章節。

添加組件

如果我們要新增程序怎么處理。請仿照范例中的camer_app處理。具體如下,比如我新增了一個reader程序,一個writer程序。以下描述reader的添加邏輯。

在applications\sample\camera目錄下,將app目錄復制一份,改名為reader。


然后修改reader里面的文件。先修改BUILD.gn:


然后源碼根據自己的實際情況修改。

最后修改編譯腳本build\lite\product\ ipcamera_hi3518ev300.json。

添加紅框中的一行,然后按組件編譯方式編譯就可以了。


編譯好的程序在out\ipcamera_hi3518ev300\bin目錄下。

©著作權歸作者和HarmonyOS技術社區共同所有,如需轉載,請注明出處,否則將追究法律責任

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2022-03-14 14:47:21

HarmonyOS操作系統鴻蒙

2021-02-26 11:54:38

MyBatis 插件接口

2011-03-25 12:45:49

Oracle SOA

2024-03-05 18:27:43

2024-04-02 08:58:13

2018-10-10 15:14:20

Linux虛擬機配置

2010-07-06 09:43:57

搭建私有云

2010-07-06 09:38:51

搭建私有云

2022-01-04 08:52:14

博客網站Linux 系統開源

2021-07-14 09:00:00

JavaFX開發應用

2020-06-01 16:25:43

WindowsLinux命令

2017-07-19 17:00:22

PHPPHP程序員消息隊列

2021-11-24 16:02:57

鴻蒙HarmonyOS應用

2011-01-10 14:41:26

2025-05-07 00:31:30

2011-05-03 15:59:00

黑盒打印機

2025-05-27 08:05:00

Spring開發服務調用

2010-01-20 10:44:01

linux DHCP服務器

2021-08-03 11:52:49

模擬器開發嵌入式

2025-02-26 07:40:25

運營分析體系運營策略
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲综合在线视频 | 成人三级在线播放 | 韩国av一区二区 | 欧美日韩精品久久久免费观看 | 欧美日韩一区二区三区在线观看 | 欧美精品一区二区三区在线四季 | 精品丝袜在线 | 99热碰| 亚洲欧美日韩久久 | 91精品国产色综合久久 | 欧美九九九 | 亚洲精品久久久久中文字幕欢迎你 | 免费黄色在线观看 | 国产精品亚洲一区二区三区在线 | 日韩中文字幕在线观看视频 | 狠狠综合久久av一区二区小说 | 精品久久久久久久 | aaaaaaa片毛片免费观看 | 亚洲va在线va天堂va狼色在线 | 久久亚洲国产 | 国产99久久久国产精品 | 在线一区视频 | 精品国产乱码一区二区三区a | 国产成人精品一区二区三区视频 | 自拍视频网 | 精品国产一区三区 | 国产精品一区二区视频 | 黄色欧美在线 | 久免费视频 | 一区二区三区四区五区在线视频 | 国产一区二区三区在线看 | 天天天天天天天干 | 嫩草视频入口 | 国久久 | 亚洲日韩中文字幕一区 | 四虎在线视频 | 国产精品久久久久永久免费观看 | 免费一区 | 国产精品久久久久久久午夜片 | 亚洲瑟瑟| 欧美日韩综合视频 |