【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置 原创 精华

他们都叫我KAI
发布于 2023-7-13 00:11
浏览
2收藏

前言

本文介绍了在VScode中编写程序源码,如何将源码编译成二进制文件,宏命令,以及一些爆红问题的处理,IntelliSense设置,屏蔽内置的 test suite方法

1.编写程序源码

1.准备开发套件

【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区

2.建立目录

ps1:获取虚拟机ip地址确保虚拟机处于开机状态
ps2:如何获取虚拟机ip地址,下载编译源码可以看我的另一篇文章 https://ost.51cto.com/posts/24912
打开VScode,点击左上角file,点击open folder,输入两个\ 和虚拟机ip地址
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
双击home文件夹,进去到1.1.3根目录,选择1.1.1根目录文件夹打开
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
打开之后…
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区

3.编写源码

打开 applications\sample\wifi-iot\app\startup 点击左上角新建文件图标 新建hello.c文件
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
下面编写C程序代码,保存文件
ps1:其中 #include “ohos_init.h” 为OpenHarmony特定的头文件
ps2:SYS_RUN为ohos_init.h头文件定义的一个宏
ps3:这里爆红先不急
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区

4.编写编译脚本

ps:千万要注意有两个BUILD.gn
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
先打开 applications\sample\wifi-iot\app\startup\BUILD.gn
需要把helloworld做成静态库,把source_set改成static_library
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
定义库名称,静态库需要编译的源文件,include目录,保存文件
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
再打开 applications\sample\wifi-iot\app\BUILD.gn
ps:features字段用于指定业务模块,使目标模块参与编译,保存文件
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区

2.将源码编译成二进制文件

打开虚拟机 进入 OpenHarmony 源码根目录,选中1.1.3,鼠标右击选择在终端打开
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
输入

hb build -f

查看编译结果,编译成功完成
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区

3.将二进制文件烧录到开发板

编译生成的固件位置

两个\ 虚拟机 IP\home\lushikai\openharmony\1.1.3\out\hispark_pegasus
wifiiot_hispark_pegasus\Hi3861_wifiiot_app_allinone.bin
首先,连接开发板,打开HiBurn,进行初始配置
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
选择固件打开
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区

烧录

ps:老方法,不会烧录可以看另一篇文章 https://ost.51cto.com/posts/24912
烧录成功,点击disconnect
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区

4.查看程序运行结果

打开MobaXterm,连接好开发板串口
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
按下开发板RST键,开始运行
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
查看输出
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区

5.OpenHarmony启动的8个阶段

宏命令

core: CORE_INIT()
core system service: SYS_SERVICE_INIT()
core system feature: SYS_FEATURE_INIT()
system startup: SYS_RUN()
system service: SYSEX_SERVICE_INIT()
system feature: SYSEX_FEATURE_INIT()
application-layer service: APP_SERVICE_INIT()
application-layer feature: APP_FEATURE_INIT()

6.VScode的IntelliSense设置

ps:有智能感知功能,自动代码补全,代码提示,代码导航,右键跳转,实时错误检查等
回到VScode,打开写好的hello.c文件,鼠标移动到爆红位置会显示错误提示
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
在有错误提示地方有个黄色小灯泡点击打开,点击edit includePath setting
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
找到包含路径
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
添加路径

${workspaceFolder}/utils/native/lite/include

【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
ok~
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
建议的额外设置,完成之后保存文件
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
ps:如果#include <stdio.h>头文件也爆红,下面介绍如何解决
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
打开配置文件,""输入路径 注意第二行后面别忘了加逗号 然后保存文件

${workspaceFolder}/device/hisilicon/hispark_pegasus/sdk_liteos/platform/os/Huawei_LiteOS/components/lib/libc/musl/include

【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
ok~
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区

7.VScode解析 .gn 文件

1.安装gn.exe

PS:这一步有能力自行操作,安不安装并不影响编译
下载 gn-windows-amd64.zip
建议将 gn.exe 放到 C:\Windows\System32\ 不需要配置环境变量

2.安装GN插件 GNFormat插件

【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区

3.格式化 .gn 文件

回到start up目录下的BUILD.gn文件
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
app目录下的BUILD.gn文件
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
按下 Alt+Shift+F 进行格式化

8.屏蔽内置的 test suite

ps1:test suite会影响观察程序运行结果
ps2:注意删除的还有86行的逗号
删除86-93行,保存文件,重新编译
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
回到虚拟机,找到1.1.3源码根目录选择在终端打开,进行全量编译

hb build -f

【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
打开HiBurn,对重新编译的Hi3861_wifiiot_app_allinone.bin固件进行烧录
ps:烧录前先把MobaXterm关闭
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区
打开MobaXterm,连接串口,按下RST键
可以看到串口输出日志不再包含测试输出了
【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置-开源基础软件社区

9.快速查找文件和代码

按内容查找

 grep -nr xxx

按文件名查找

find . -name 'xxx'

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2023-7-13 08:47:05修改
4
收藏 2
回复
举报
6条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

好详细的hello world,作者是跟着文档跑出来的吗

回复
2023-7-13 10:06:11
他们都叫我KAI
他们都叫我KAI 回复了 红叶亦知秋
好详细的hello world,作者是跟着文档跑出来的吗

是跟着文档跑出来的

回复
2023-7-13 10:15:35
晒太阳的懒猫
晒太阳的懒猫

学习了,收藏!谢谢楼主共享。

回复
2023-7-13 10:19:43
青舟321
青舟321

可以可以,大量的标注用心了


1
回复
2023-7-14 14:26:05
冰淇淋爱我
冰淇淋爱我

用其他的板子开发影响大吗

回复
2023-7-17 11:56:09
他们都叫我KAI
他们都叫我KAI 回复了 冰淇淋爱我
用其他的板子开发影响大吗

目前我只用过Hi3861

回复
2023-7-17 14:01:41
回复
    相关推荐