前言
本文介绍了在VScode中编写程序源码,如何将源码编译成二进制文件,宏命令,以及一些爆红问题的处理,IntelliSense设置,屏蔽内置的 test suite方法
1.编写程序源码
1.准备开发套件
2.建立目录
ps1:获取虚拟机ip地址确保虚拟机处于开机状态 ps2:如何获取虚拟机ip地址,下载编译源码可以看我的另一篇文章 https://ost.51cto.com/posts/24912 打开VScode,点击左上角file,点击open folder,输入两个\ 和虚拟机ip地址 双击home文件夹,进去到1.1.3根目录,选择1.1.1根目录文件夹打开 打开之后...
3.编写源码
打开 applications\sample\wifi-iot\app\startup 点击左上角新建文件图标 新建hello.c文件 下面编写C程序代码,保存文件 ps1:其中 #include "ohos_init.h" 为OpenHarmony特定的头文件 ps2:SYS_RUN为ohos_init.h头文件定义的一个宏 ps3:这里爆红先不急
4.编写编译脚本
ps:千万要注意有两个BUILD.gn 先打开 applications\sample\wifi-iot\app\startup\BUILD.gn 需要把helloworld做成静态库,把source_set改成static_library 定义库名称,静态库需要编译的源文件,include目录,保存文件 再打开 applications\sample\wifi-iot\app\BUILD.gn ps:features字段用于指定业务模块,使目标模块参与编译,保存文件
2.将源码编译成二进制文件
打开虚拟机 进入 OpenHarmony 源码根目录,选中1.1.3,鼠标右击选择在终端打开 输入
hb build -f
查看编译结果,编译成功完成
3.将二进制文件烧录到开发板
编译生成的固件位置
两个\ 虚拟机 IP\home\lushikai\openharmony\1.1.3\out\hispark_pegasus
wifiiot_hispark_pegasus\Hi3861_wifiiot_app_allinone.bin 首先,连接开发板,打开HiBurn,进行初始配置 选择固件打开
烧录
ps:老方法,不会烧录可以看另一篇文章 https://ost.51cto.com/posts/24912 烧录成功,点击disconnect
4.查看程序运行结果
打开MobaXterm,连接好开发板串口 按下开发板RST键,开始运行 查看输出
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文件,鼠标移动到爆红位置会显示错误提示 在有错误提示地方有个黄色小灯泡点击打开,点击edit includePath setting 找到包含路径 添加路径
${workspaceFolder}/utils/native/lite/include
ok~ 建议的额外设置,完成之后保存文件 ps:如果#include <stdio.h>头文件也爆红,下面介绍如何解决 打开配置文件,""输入路径 注意第二行后面别忘了加逗号 然后保存文件
${workspaceFolder}/device/hisilicon/hispark_pegasus/sdk_liteos/platform/os/Huawei_LiteOS/components/lib/libc/musl/include
ok~
7.VScode解析 .gn 文件
1.安装gn.exe
PS:这一步有能力自行操作,安不安装并不影响编译 下载 gn-windows-amd64.zip 建议将 gn.exe 放到 C:\Windows\System32\ 不需要配置环境变量
2.安装GN插件 GNFormat插件
3.格式化 .gn 文件
回到start up目录下的BUILD.gn文件 app目录下的BUILD.gn文件 按下 Alt+Shift+F 进行格式化
8.屏蔽内置的 test suite
ps1:test suite会影响观察程序运行结果 ps2:注意删除的还有86行的逗号 删除86-93行,保存文件,重新编译 回到虚拟机,找到1.1.3源码根目录选择在终端打开,进行全量编译
hb build -f
打开HiBurn,对重新编译的Hi3861_wifiiot_app_allinone.bin固件进行烧录 ps:烧录前先把MobaXterm关闭 打开MobaXterm,连接串口,按下RST键 可以看到串口输出日志不再包含测试输出了
9.快速查找文件和代码
按内容查找
grep -nr xxx
按文件名查找
find . -name 'xxx'
本文作者:他们都叫我KAI