当前位置:   article > 正文

[学习笔记] BearPi-HM Nano - 开发环境搭建&HelloWorld

bearpi

声明:

        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文件写入

  1. #include <stdio.h>
  2. #include "ohos_init.h"
  3. void Hello_World(void){
  4. printf("Hello World!\r\n");
  5. }
  6. APP_FEATURE_INIT(Hello_World); //调用源码中的初始化函数,指定Hello_World函数为入口

打开BUILD.gn文件写入

  1. static_library("myapp") {
  2. sources = [
  3. "hello_world.c"
  4. ]
  5. include_dirs = [
  6. "//utils/native/lite/include"
  7. ]
  8. }

这里的 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

  1. # Copyright (c) 2020 Nanjing Xiaoxiongpai Intelligent Technology Co., Ltd.
  2. # Licensed under the Apache License, Version 2.0 (the "License");
  3. # you may not use this file except in compliance with the License.
  4. # You may obtain a copy of the License at
  5. #
  6. # http://www.apache.org/licenses/LICENSE-2.0
  7. #
  8. # Unless required by applicable law or agreed to in writing, software
  9. # distributed under the License is distributed on an "AS IS" BASIS,
  10. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  11. # See the License for the specific language governing permissions and
  12. # limitations under the License.
  13. import("//build/lite/config/component/lite_component.gni")
  14. lite_component("app") {
  15. features = [
  16. #"A1_kernal_thread:thread_example",
  17. #"A2_kernel_timer:timer_example",
  18. #"A3_kernel_event:event_example",
  19. #"A4_kernel_mutex:mutex_example",
  20. #"A5_kernel_semaphore:semaphore_example",
  21. #"A6_kernel_message:message_example",
  22. #"B1_basic_led_blink:led_example",
  23. "B2_basic_button:button_example",
  24. #"B3_basic_pwm_led:pwm_example",
  25. #"B4_basic_adc:adc_example",
  26. #"B5_basic_i2c_nfc:i2c_example",
  27. #"B6_basic_uart:uart_example",
  28. #"C1_e53_sf1_mq2:e53_sf1_example",
  29. #"C2_e53_ia1_temp_humi_pls:e53_ia1_example",
  30. #"C3_e53_sc1_pls:e53_sc1_example",
  31. #"C4_e53_sc2_axis:e53_sc2_example",
  32. #"C5_e53_is1_infrared:e53_is1_example",
  33. #"D1_iot_wifi_ap:wifi_ap",
  34. #"D2_iot_wifi_sta_connect:wifi_sta_connect",
  35. #"D3_iot_udp_client:udp_client",
  36. #"D4_iot_tcp_server:tcp_server",
  37. #"D5_iot_mqtt:iot_mqtt",
  38. #"D6_iot_cloud_oc:oc_mqtt",
  39. #"D7_iot_cloud_onenet:onenet_mqtt",
  40. #"D8_iot_cloud_oc_smoke:cloud_oc_smoke",
  41. #"D9_iot_cloud_oc_light:cloud_oc_light",
  42. #"D10_iot_cloud_oc_manhole_cover:cloud_oc_manhole_cover",
  43. #"D11_iot_cloud_oc_infrared:cloud_oc_infrared",
  44. #"D12_iot_cloud_oc_agriculture:cloud_oc_agriculture",
  45. #"D13_iot_cloud_oc_gps:cloud_oc_gps",
  46. ]
  47. }

将 "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没有关闭

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

 至此开发环境搭建完成

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/240169
推荐阅读
  

闽ICP备14008679号