[文章]【HarmonyOS_Hi3861学习笔记】【连载】--第一个项目--串口打印 Hello World

阅读量0
1
3
没有安装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文件里面写如下代码
  1. #include <stdio.h>
  2. #include "ohos_types.h"
  3. #include "ohos_init.h"

  4. static void HelloWorld(void)
  5. {
  6.     printf("[Demo] Hello World! Hello Harmony!rn");
  7. }
  8.    
  9. SYS_RUN(HelloWorld);
复制代码
其中调用了HarmonyOS启动恢复模块接口SYS_RUN()启动业务

hello_world 文件夹下的 BUILD.gn添加如下代码
  1. static_library("hello_world") {
  2.     sources = [
  3.         "hello_world.c"
  4.     ]

  5.     include_dirs = [
  6.         "//utils/native/lite/include"
  7.     ]
  8. }
复制代码
其中格式参考官方说明:
  • static_library中指定业务模块的编译结果,为静态库文件libhello_world.a,开发者根据实际情况完成填写。
  • sources中指定静态库.a所依赖的.c文件及其路径,若路径中包含"//"则表示绝对路径(此处为代码根路径),若不包含"//"则表示相对路径。
  • include_dirs中指定source所需要依赖的.h文件路径。


app文件夹下的BUILD.gn在features中加入代码,变成如下:
  1. lite_component("app") {
  2.     features = [
  3.         "startup",
  4.         "hello_world:hello_world",
  5.     ]
  6. }
复制代码
其中格式说明如下:
  • 前面这个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
hello world

和预期结果相符。
预计下个demo点灯


回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友