第二章 IDE开发
基于官方IDE开发就是搭建一套Windows+Ubuntu混合开发的环境,其中使用Windows平台的DevEco Device Tool可视化界面进行相关操作,通过远程连接的方式对接Ubuntu下的DevEco Device Tool(可以不安装Visual Studio Code),然后对Ubuntu下的源码进行开发、编译、烧录等操作。
2.1 Windows环境¶
华为集成开发环境IDE DevEco Device Tool下载
一路默认配置即可,然后打开Vscode即可看到插件
2.2 Ubuntu环境¶
2.2.1 准备Ubuntu虚拟机¶
官方Ubuntu系统要求:Ubuntu18.04~21.10版本,推荐为 20.04 版本,因此我们也是有此版本。
2.2.2 配置Ubuntu环境¶
将Ubuntu Shell环境修改为bash
修改结果:
下载DevEco Device Tool最新Linux版本软件包,注意和Windows的版本一样
解压DevEco Device Tool软件包并安装,第三步需要签署同意用户协议和隐私声明才能进行下一步的安装
#解压
unzip devicetool-linux-tool-{Version}.zip
#赋权
chmod u+x devicetool-linux-tool-{Version}.sh
#执行安装
sudo ./devicetool-linux-tool-{Version}.sh
2.3 配置远程访问环境¶
2.3.1 Ubuntu配置SSH服务¶
安装ssh服务
查看虚拟机IP地址
2.3.2 Windows配置远程访问¶
Vscode 安装 Remote SSH 插件
连接虚拟机:ssh 用户名@IP
一路默认,输入密码即可成功连接,点击打开文件就可以选择要打开的虚拟机文件夹
2.4 创建工程获取源码¶
选择源码的版本,这里我选择与官网示例同样的OpenHarmony-v3.1-Release ,即OpenHarmony-v3.1正式版,也可以使用其他版本一样的操作。开发板我选用的小熊派,芯片HI3861,这里SOC和开发板都选用hi3861。
Danger
之前选用开发板为BreaPi但是串口输出结果不对,所以又改用这个比较正常,原因暂未知,所以就用hi3861吧。
点击确定,会自动开始下载源码,源码比较大所以需要挺多的时间。
2.5 第一个程序(基于HI3861)¶
2.5.1 编写程序¶
找到目录./applications/sample/wifi-iot/app
,在app文件夹下一个文件夹my_first_app
,代码文件hello_world.c
,编译脚本BUILD.gn
。具体目录结构如下:
.
└── applications
└── sample
└── wifi-iot
└── app
└── my_first_app
│── hello_world.c
└── BUILD.gn
Note
官方称呼:新增业务my_first_app,其中hello_world.c为业务代码,BUILD.gn为编译脚本。
在hello_world.c
文件中添加代码
#include <stdio.h>
#include "ohos_init.h"
#include "ohos_types.h"
void HelloWorld(void)
{
printf("[DEMO] Hello world.\n");
}
SYS_RUN(HelloWorld);
在编译脚本BUILD.gn
中添加编译配置
static_library("myapp") {
sources = [
"hello_world.c"
]
include_dirs = [
"//utils/native/lite/include"
]
}
添加新组件,组件配置文件为build/lite/components/applications.json
Danger
若源码版本大于等于OpenHarmony 3.2 Beta2时,组件配置文件为build/lite/components/communication.json
。
{
"components": [
{
"component": "camera_sample_communication",
"description": "Communication related samples.",
"optional": "true",
"dirs": [
"applications/sample/camera/communication"
],
"targets": [
"//applications/sample/camera/communication:sample"
],
"rom": "",
"ram": "",
"output": [],
"adapted_kernel": [ "liteos_a" ],
"features": [],
"deps": {
"components": [],
"third_party": []
}
},
##start##
{
"component": "hello_world_app",
"description": "hello world samples.",
"optional": "true",
"dirs": [
"applications/sample/wifi-iot/app/my_first_app"
],
"targets": [
"//applications/sample/wifi-iot/app/my_first_app:myapp"
],
"rom": "",
"ram": "",
"output": [],
"adapted_kernel": [ "liteos_m" ],
"features": [],
"deps": {
"components": [],
"third_party": []
}
},
##end##
{
"component": "camera_sample_app",
"description": "Camera related samples.",
"optional": "true",
"dirs": [
"applications/sample/camera/launcher",
"applications/sample/camera/cameraApp",
"applications/sample/camera/setting",
"applications/sample/camera/gallery",
"applications/sample/camera/media"
],
修改单板配置文件vendor/hisilicon/hispark_pegasus/config.json
,新增hello_world_app组件的条目
{
"subsystem": "applications",
"components": [
##start##
{ "component": "hello_world_app", "features":[] },
##end##
{ "component": "wifi_iot_sample_app", "features":[] }
]
},
Note
这里就跟着修改文件即可,具体关于编译脚本和组件添加问题,会在编译原理章节进一步解释。
2.5.2 编译¶
点击Build即可编译,若由工具缺失则点击工程配置选择缺失工具链会自动下载,一般第一次不会出错。
2.5.3 烧录¶
DevEco Device Tool左下角查看连接状态,若未连接则点击连接按键。
- 如果Local PC右边连接按钮为,则远程计算机与本地计算机为已连接状态,不需要执行其他操作。
- 如果Local PC右边连接按钮为,则点击绿色按钮进行连接。连接时DevEco Device Tool会重启服务,因此请不要在下载源码或源码编译过程中进行连接,否则会中断任务。
连接以后可以看到工具链是完整的,所以上一步编译,没问题。
选择烧录端口,确保自己已经安装相关开发板的串口驱动,其他默认即可。
点击Upload烧录,根据终端提示按一下开发板的 复位键
烧录成功!
2.5.4 运行查看程序¶
打开串口检测器,并复位开发板。
在串口中端依次输入下列命令,注意命令前后均不可以有多余空格,返回ok即单个命令执行正确。
AT+STARTSTA # 启动STA模式
AT+SCAN # 扫描周边AP
AT+SCANRESULT # 显示扫描结果
AT+CONN="OpenHarmony",,2,"123456789" # 连接指定AP(修改自己热点即可)
AT+STASTAT # 查看连接结果
AT+DHCP=wlan0,1 # 通过DHCP向AP请求wlan0的IP地址
AT+IFCFG # 查看开发板的IP地址
AT+PING=www.baidu.com
AT+CONN="
", , ,"passwd"
- ssid,passwd为热点名称密码。
- bssid为热点的MAC地址。
- auth_type为认证方式
- 0即OPEN
- 1即WEP加密
- 2即WPA2_PSK加密
- 3即WPA和WPA2混合加密
完成最后一步,即WLAN模组联网成功:
再次复位可以看到输出结果: