【HarmonyOS HiSpark Wi-Fi IoT 套件试用连连载】第四篇、Hello World - HarmonyOS技术社区 - 电子技术论坛 - 广受欢迎的专业电子论坛
分享 收藏 返回

【HarmonyOS HiSpark Wi-Fi IoT 套件试用连连载】第四篇、Hello World

本帖最后由 学海沙粒 于 2020-11-1 18:20 编辑

        搭建好环境并成功烧录代码后,开始编写个人代码,千里之行,从“Hello World”开始。
一、新建文件夹
        为了避免破环源代码的完整结构,在./applications/sample/wifi-iot/app路径下新建一个文件夹。具体操作是在VS Code中,找到上述路径的app文件夹,鼠标放在app文件夹上,然后右击选择“新建文件夹”,然后在光标处输入文件夹名称“my_first_app”。
新建文件夹.png
        鼠标移到新建的“my_afirst_app”文件夹上,右键选择“新建文件”,在光标指示处输入文件名称,此处文件名称需要输入完整后缀名。此处新建两个文件,分别是hello_world.c和BUILD.gn。hello_world.c为程序代码,BUILD.gn为编译脚本
新建文件.png
        新的文件夹目录结构如下所示:

    application文件夹结构.png
            树形结构:
  •   .
  • └── applications
  •     └── sample
  •       └── wifi-iot
  •         └── app
  •            │──demolink
  •            │ ──iothardware
  •              ── my_first_app
  •            │  │── hello_world.c
  •            │  └── BUILD.gn
  •            │ ──samgr
  •            │ ──startup
  •            └── BUILD.gn

二、编写代码
        1)在新建的hello_world.c中编写代码,在HelloWorld()函数中打印Hello world。 在代码最下方,使用HarmonyOS启动恢复模块接口SYS_RUN()启动程序,默认优先级为2,SYS_RUN定义在ohos_init.h文件中 。
  1. #include
  2. #include "ohos_init.h"
  3. #include "ohos_types.h"
        2)编写用于将代码构建成静态库的BUILD.gn文件。
        打开./applications/sample/wifi-iot/app/my_first_app下的BUILD.gn文件,并完成如下配置。
  1. static_library("myapp") {
  2.     sources = [
  3.         "hello_world.c"
  4.     ]
  5.     include_dirs = [
  6.         "//utils/native/lite/include"
  7.     ]
  8. }
        BUILD.gn文件由三部分内容(目标、源文件、头文件路径)构成,需由开发者完成填写。  
  • static_library中指定业务模块的编译结果,为静态库文件libmyapp.a,开发者根据实际情况完成填写。
  • sources中指定静态库.a所依赖的.c文件及其路径,若路径中包含"//"则表示绝对路径(此处为代码根路径),若不包含"//"则表示相对路径。
  • include_dirs中指定source所需要依赖的.h文件路径(具体.h文件如下所示)。
包含的头文件.png   
        3)编写模块BUILD.gn文件,指定需参与构建的特性模块。
         配置./applications/sample/wifi-iot/app/BUILD.gn文件,在features字段中增加索引,使目标模块参与编译。features字段指定业务模块的路径和目标,以my_first_app举例,features字段配置如下。
  1. import("//build/lite/config/component/lite_component.gni")

  2. lite_component("app") {
  3.     features = [
  4.         "my_first_app:myapp",
  5.     ]
  6. }
  • my_first_app是相对路径,指向./applications/sample/wifi-iot/app/my_first_app/BUILD.gn。
  • myapp是目标,指向./applications/sample/wifi-iot/app/my_first_app/BUILD.gn中的static_library("myapp")。

三、输出测试

       保存好修改的代码,然后编译、烧录。重启IoT开发板,在串口界面会显示如下结果:  
打印输出.png   

更多回帖

×
发帖