没有安装node.js,无法使用vs code中的华为插件下载程序。研究了下,vs code里面的华为插件实际上是通过nod.js下载的modem连接和调用了串口并通过HiBurn下载程序的。通过压缩软件打开插件DevEcoDeviceTool-1.0.1.vsix--extensiondevecotools,会发现里面有个HiBurn.exe,将其从压缩包里面提取出来,可以直接双击打开。然后就和下载STM32差不多,文件选择 code-1.0outwifiiotHi3861_wifiiot_app_allinone.bin,串口波特率尽量设置高点,这样下载会快点,看大神的帖子说好像最高可以到3000000 bps,然后选择 Auto burn,点击 Connect,目标板复位就开始下载了。出现 Execution Successful表示下载成功
实际上默认有个Hi3861_loader_signed.bin,这个文件是删除不了的,必须下载。另外文件不能重复点击Add,不然会一直累加很多软件,下载进去会运行不了,直接死掉。
[attach]988142[/attach]
步骤参考官网例程说明。新建个文件夹hello_world,该文件夹下新建两个文件,分别为hello_world.c以及BUILD.gn。
hello_world.c文件里面写如下代码
- #include <stdio.h>
- #include "ohos_types.h"
- #include "ohos_init.h"
- static void HelloWorld(void)
- {
- printf("[Demo] Hello World! Hello Harmony!rn");
- }
-
- SYS_RUN(HelloWorld);
复制代码其中调用了HarmonyOS启动恢复模块接口SYS_RUN()启动业务
hello_world 文件夹下的 BUILD.gn添加如下代码
- static_library("hello_world") {
- sources = [
- "hello_world.c"
- ]
- include_dirs = [
- "//utils/native/lite/include"
- ]
- }
复制代码其中格式参考官方说明:
- static_library中指定业务模块的编译结果,为静态库文件libhello_world.a,开发者根据实际情况完成填写。
- sources中指定静态库.a所依赖的.c文件及其路径,若路径中包含"//"则表示绝对路径(此处为代码根路径),若不包含"//"则表示相对路径。
- include_dirs中指定source所需要依赖的.h文件路径。
app文件夹下的BUILD.gn在features中加入代码,变成如下:
- lite_component("app") {
- features = [
- "startup",
- "hello_world:hello_world",
- ]
- }
复制代码其中格式说明如下:
- 前面这个hello_world 是相对路径目录文件夹,指向./applications/sample/wifi-iot/app/hello_world/BUILD.gn。
- 后面这个 hello_world 是目标,指向./applications/sample/wifi-iot/app/hello_world/BUILD.gn中的static_library("hello_world"),实际上是静态文件名。
都添加好后,直接在终端输入python build.py wifiiot 即可生成目标文件以供下载
如下是效果图:
hello world\n
和预期结果相符。
预计下个demo点灯