宣告:
1. 該系列學習筆記整理自BearPi社區以及網路資源
2. 閱讀本系列筆記需要部分單片機、電子技術和C語言基礎
3. 才疏學淺,若有謬誤,敬請指正
目錄
一、簡述
二、代碼開發環境
三、編譯環境
四、燒錄器
五、其他相關工具以及測驗
一、簡述
開發環境其實包括三個部分:
1. 代碼開發環境
2. 編譯環境
3. 燒錄器
其中比較麻煩的就只有編譯環境了,OpenHarmony現在暫時不支持在windows環境下進行編譯,所以我們需要一個linux系統的主機,不管是虛擬機還是租一個云主機都ok,
大致的環境示意圖如下:

Linux主機通過網路連接window主機,win再通過資料線連接開發板,
二、代碼開發環境
代碼開發環境其實沒有太多的要求,我使用的是Visual Studio Code,安裝一個C/C++插件就行,也可以裝一個其他IDE或者文本編輯器,此處步驟略過,
三、編譯環境
首先需要一個Ubuntu16.04及以上64位系統版本,Shell使用bash,我選擇使用VMware 裝個虛擬機,這里推薦使用小熊派官方提供的鏡像檔案,
下載地址(百度云):https://pan.baidu.com/s/1T0Tcl3y48C1p5L6y-6HJNg
提取碼: eusr
下載后解壓到任意路徑

在VMware中打開

選擇OVF檔案

選擇虛擬機保存路徑,硬碟空間得大于10G

大致幾分鐘之后匯入完成,開啟

虛擬機的默認密碼是bearpi,可自行修改 
打開桌面左上角的火狐瀏覽器輸入百度網址試試網路是否正常,大概率是無網路

在VMware Workstation中,點擊虛擬機>> 設定

在網路配接器中,改成NAT 模式,點擊確定
重啟一下虛擬機就完事兒了

網路現在是好了,開始下載bearpi的原始碼
在桌面右鍵之后選擇打開終端

輸入 cd /home/<用戶名> 進入用戶檔案夾,沒有修改過用戶名的話是 cd /home/bearpi
這里cd是使終端操作位置切換至指定的檔案夾 home/<用戶名>是Ubuntu的主目錄地址
然后在終端里輸入 mkdir project && cd project 創建project檔案夾并進入,這樣等會兒下載的原始碼就會存放在這,當然你也可以在其他地方創建檔案夾然后cd進入,
之后輸入 hpm init -t default 對hpm工具進行初始化,成功會回傳
“Your bundle will be created in the directory /home/bearpi/project.
Initialization finished.”
輸入 hpm i @bearpi/bearpi_hm_nano 開始下載原始碼,開始有一些WARN提示不用在意,大概幾分鐘之后出現installed就完成了

在左側快捷欄點擊第二個圖示打開檔案夾,找到project檔案夾進入

至此編譯環境搭建就完成了,其實本來需要安裝很多的工具

但是我們使用了小熊派官方提供的鏡像虛擬機檔案,所以已經預裝好了不用搞那么麻煩
四、燒錄器
燒錄一般是在windows平臺進行,需要安裝兩個東西,
1. 開發板USB轉串口驅動
- 下載地址:http://www.wch.cn/search?q=ch340g&t=downloads
2. HiBurn燒錄器 類似stc-isp
- 下載地址(百度云):https://pan.baidu.com/s/1bp2ypAfH2HaNPTY2KwEhEA 提取碼:1234
五、其他相關工具以及測驗
讓我們來理一理,現在我們需要在windows的IDE上進行代碼開發,但是得把代碼檔案弄到linux下進行編譯,不可能每次都把寫好的代碼檔案復制過去,太麻瓜了,所以我們可以使用檔案夾映射,把linux下的原始碼檔案夾映射到win上,再用IDE打開代碼進行撰寫就成了,
1. 下載并安裝RaiDrive工具
- 下載地址:https://forspeed.rbread05.cn/down/newdown/5/28/RaiDrive.rar
2. 設定
先把RaiDrive設定成中文

3. 獲取IP地址 ,如果顯示為inet6 16進制的地址,說明你更改網路設定后沒有重啟虛擬機

4. 添加鏈接資訊
- 取消勾選只讀
- SFTP://______ (這個輸入獲取到的地址)
- 賬戶:賬號和密碼皆為 bearpi
- 其他默認
- 點擊
確定

5. 確定之后在我的電腦里就可以找到一個V盤,我這里是X,映射成功

6. 在IDE內選擇檔案夾 X:/home/bearpi/project/


7. 查看applications/bearpi-HM_Nano/sample檔案夾

sample內每一個子檔案夾都是小熊派官方的示例代碼
8. 創建helloworld專案

打開hello_world.c檔案寫入
#include <stdio.h>
#include "ohos_init.h"
void Hello_World(void){
printf("Hello World!\r\n");
}
APP_FEATURE_INIT(Hello_World); //呼叫原始碼中的初始化函式,指定Hello_World函式為入口
打開BUILD.gn檔案寫入
static_library("myapp") {
sources = [
"hello_world.c"
]
include_dirs = [
"//utils/native/lite/include"
]
}
這里的 static_library("myapp") {
指定業務模塊的編譯結果,為靜態庫檔案myapp.a,根據實際情況填寫
sources = ["hello_world.c"] 指定要編譯的.c檔案和路徑,這里BUILD.gn和c檔案在同一目錄下不需要指定路徑
include_dirs = [ "//utils/native/lite/include" ] 指定.c檔案中#include匯入的依賴檔案.h所在路徑
接下來需要打開另一個BUILD.gn檔案,路徑為sample/BUILD.gn

# Copyright (c) 2020 Nanjing Xiaoxiongpai Intelligent Technology Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//build/lite/config/component/lite_component.gni")
lite_component("app") {
features = [
#"A1_kernal_thread:thread_example",
#"A2_kernel_timer:timer_example",
#"A3_kernel_event:event_example",
#"A4_kernel_mutex:mutex_example",
#"A5_kernel_semaphore:semaphore_example",
#"A6_kernel_message:message_example",
#"B1_basic_led_blink:led_example",
"B2_basic_button:button_example",
#"B3_basic_pwm_led:pwm_example",
#"B4_basic_adc:adc_example",
#"B5_basic_i2c_nfc:i2c_example",
#"B6_basic_uart:uart_example",
#"C1_e53_sf1_mq2:e53_sf1_example",
#"C2_e53_ia1_temp_humi_pls:e53_ia1_example",
#"C3_e53_sc1_pls:e53_sc1_example",
#"C4_e53_sc2_axis:e53_sc2_example",
#"C5_e53_is1_infrared:e53_is1_example",
#"D1_iot_wifi_ap:wifi_ap",
#"D2_iot_wifi_sta_connect:wifi_sta_connect",
#"D3_iot_udp_client:udp_client",
#"D4_iot_tcp_server:tcp_server",
#"D5_iot_mqtt:iot_mqtt",
#"D6_iot_cloud_oc:oc_mqtt",
#"D7_iot_cloud_onenet:onenet_mqtt",
#"D8_iot_cloud_oc_smoke:cloud_oc_smoke",
#"D9_iot_cloud_oc_light:cloud_oc_light",
#"D10_iot_cloud_oc_manhole_cover:cloud_oc_manhole_cover",
#"D11_iot_cloud_oc_infrared:cloud_oc_infrared",
#"D12_iot_cloud_oc_agriculture:cloud_oc_agriculture",
#"D13_iot_cloud_oc_gps:cloud_oc_gps",
]
}
將 "B2_basic_button:button_example", 注釋掉

在features串列內寫入"Hello_world:myapp",
記錄加英文逗號

此處Hello_world為剛剛新建的專案要使用的BUILD.gn所在的檔案夾,即專案檔案夾
myapp指向專案BUILD.gn中static_library("myapp")
將以上所有檔案按Ctrl+S保存
9. 遠程編譯
之后我們需要下載一個終端程式MobaXterm 方便命令Linux端編譯以及串口除錯
- 下載地址:https://en.softonic.com/download/moba/windows/post-download
在MobaXterm中設定遠程終端連接

此處IP設定為通過ifconfig獲取的IP地址

輸入用戶名并回車,默認為bearpi

輸入密碼并回車,默認為bearpi,注意輸入密碼時不會顯示

在彈出的界面中選擇Yes保存用戶資訊,下次就不用輸入密碼了不過還是需要輸入用戶名的

在終端輸入 cd /home/bearpi/project
輸入 hpm dist

若顯示BUILD SUCCES即為構建完成
10. 燒錄程式
構建成功的輸出檔案在/home/bearpi/project/out/BearPi-HM_Nano/中
先使用資料線將開發板與電腦連接,在設備管理器中查看連接埠號,名字CH340的就是
若未顯示CH340可能沒有安裝USB驅動

在Windows打開Hiburn工具,并點擊Refresh,在COM中選擇CH340的COM號

然后點擊Setting,并選擇 Com settings ,在Com settings中設定Baud為:921600,點擊確定

點擊select file 選擇映射硬碟中的檔案X:/home/bearpi/project/out/BearPiHM_Nano/Hi3861_wifiiot_app_allinone.bin
勾選Auto burn然后點擊connect,此時按鈕變成disconnect

按下開發板上的復位按鍵開始燒錄

燒錄完成后Hiburn的輸出欄會清空并輸出Connecting...

點擊Disconnect關閉與開發板的串口連接,一會兒要用
此時少部分長得帥的人可能要問了,程式是燒進去了,我的printf("helloworld")輸出哪里看呢
這時還是要用到終端程式MobaXterm
打開MobaXterm,
-
點擊:
Session、Serial按鈕 -
設定Seral port為 Hiburn 同一個串口
-
設定Speed為
115200 -
點擊
OK

如果顯示Unable to open... 則剛剛Hiburn的connect沒有關閉
設定完成后按下開發板復位按鍵,顯示日志資訊

至此開發環境搭建完成
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/394229.html
標籤:其他
上一篇:【pytest】概述pytest——setup、teardown方法和conftest中的fixture用法,來執行測驗用例的前置/后置條件陳述句操作
