从本质上学会基于HarmonyOS开发Hi3861(主要讲授方法)
引言:花半秒钟就看透事物本质的人,和花一辈子都看不透事物本质的人,注定是截然不同的命运
做开发也一样,如果您能看透开发的整个过程,就不会出现“学会了某个RTOS的开发,同样的RTOS开发换一块开发板又不会了”,“跟着教程学会了某块开发板的某个Demo开发,自己开发另一个Demo又不会了”等等问题,只要能看透就能做到触类旁通,游刃有余!一定要活学活用,不能学死了,多想想为什么,不要死记过程。
在基于HarmonyOS开发Hi3861之前,需要对整个开发环境及过程有一个全局上的了解,首先还是从这一张最经典的框架图给大家讲起:
目前我们对Hi3861的开发主要涉及上图中的内核抽象层、系统能力子系统、DXF子系统、公共基础库子系统(提供KV存储、文件操作、定时器、IoT外设控制等能力供OpenHarmony各业务子系统及上层应用使用)、系统服务框架子系统(用于提供面向服务编程和对外提供能力用于分布式任务调度)
1、构建系统
该构建系统由python脚本配合gn、ninja组成,若是为了开发Demo或者应用,不必细究编译构建系统的具体实现细节,只需要做到会使用即可。
当我们输入python build.py wifiiot指令,python脚本开始读取build目录中与wifiiot设备相关的各项参数信息并构造编译指令如下:
gn工具所在目录/gn gen 源码所在目录/out/wifiiot --root=. --dotfile=build/lite/.gn --args='product = "wifiiot" ohos_build_type = "release"' 这条指令用于生成一些xxx.ninja文件,这些文件将在下一阶段指导ninja编译源码生成烧录文件
ninja工具所在目录/ninja -w dupbuild=warn -C 源码所在目录/out/wifiiot 这条指令用于根据前面生成的xxx.ninja文件调用工具链编译源码最终生成烧录文件
gn用于根据每个目录下的BUID,gn文件搜寻编译生成烧录文件所需的依赖文件,所以我们只要学会如何写BUILD.gn文件即可,关于具体实现本章就暂且略过,后期会给大家补上。
这里以led_example.c程序为例,给大家分析BUILD.gn文件,希望大家能举一反三:
在code-1.0\applications\sample\w