声明:

        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转串口驱动

2. HiBurn烧录器 类似stc-isp

五、其他相关工具以及测试

让我们来理一理,现在我们需要在windows的IDE上进行代码开发,但是得把代码文件弄到linux下进行编译。不可能每次都把写好的代码文件复制过去,太麻瓜了。所以我们可以使用文件夹映射,把linux下的源码文件夹映射到win上,再用IDE打开代码进行编写就成了。

1. 下载并安装RaiDrive工具

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项目 

在./applications/BearPi/BearPi-HM_Nano/sample路径下新建一个Hello_world目录,用于存放源码文件。
在./applications/BearPi/BearPi-HM_Nano/sample/Hello_world路径下新建一个hello_world.c文件,该文件为源码文件。
在./applications/BearPi/BearPi-HM_Nano/sample/my_app路径下新建一个 BUILD.gn 文件,该文件为源码编译脚本。

打开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端编译以及串口调试 

在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,

  1. 点击:SessionSerial按钮

  2. 设置Seral port为 Hiburn 同一个串口

  3. 设置Speed为 115200

  4. 点击OK

如果显示Unable to open... 则刚刚Hiburn的connect没有关闭

设置完成后按下开发板复位按键,显示日志信息

 至此开发环境搭建完成

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐