入门
- 一、编写HelloWorld
- 1.1 编译SDK
- 1.2 业务构建
- 1.2.1 编写HelloWorld业务代码
- 1.2.3 编辑业务构建文件
- 1.3 添加新组件
- 1.4 编辑组件条目
- 1.5 编译验证
- 1.6 新增文件结构展示
一、编写HelloWorld
1.1 编译SDK
可以在VSCode终端中编译SDK源码,确认编译通过后即可开始编写HelloWorld 。
1.2 业务构建
1.2.1 编写HelloWorld业务代码
业务代码一般新增于applications文件夹下
// 工程结构目录一般如下
--applications--sample--wifi-iot--app--my_first_app--hello_world.c--BUILD.gn
// hello_world.c
#include <stdio.h>
#include "ohos_init.h"
#include "ohos_types.h"void HelloWorld(void){printf("[DEMO]HEllo World.\n");
}SYS_RUN(HelloWorld);
1.2.3 编辑业务构建文件
该系统下业务系统由BUILD.gn文件完成配置,包括目标、源文件路径、头文件路径三部分。
// BUILD.gn文件
static_library("myapp"){ //目标,编译结果为静态库文件libmyapp.asources = [ //源文件及路径,指定静态库文件所依赖的c文件及路径,此处未加"//"为相对路径,加"//"为绝对路径。"hello_world.c",]include_dirs = [ //头文件路径,指定静态库文件所依赖的h文件路径"//utils/native/lite/include",]
}
1.3 添加新组件
电鸿下各类驱动可以作为一个组件,组件的添加同样需要配置json文件以新增组件,否则不会在组件条目中包含编译。
/* 在build/lite/components/applications.json中新增该组件注意组件名称(component)、路径(dirs)、以及源文件及路径(targets)要正确
*/
{"components":[{"component":"hello_world_app","description":"hello world samples.","optional":"true","dirs":["applications/sample/wifi-iot/app/my_first_app"],"targets":["//applications/sample/wifi-iot/app/my_first_app:myapp"],"rom":"","ram":"","output":[],"adapted_kernel":["liteos_m"],"features":[],"deps":{"components":[],"third_party":[]}}]
}
1.4 编辑组件条目
组件条目修改后会自动按配置将编写的业务进行包含编译
/* 在vender/hisilicon/hispark_pegasus/config.json中新增hello_world_app组件的条目需要注意归属到那个子系统(subsystem),组件名称(component)要正确。
*/
{"subsystem":"applications","components":[{"component":"hello_world_app","features":[]}]
}
1.5 编译验证
编译通过后,查看串口是否有打印输出
1.6 新增文件结构展示
// An highlighted block
--applications/sample/wifi-iot/app--my_first_app //新增文件夹--BUILD.gn //新增 myapp静态库文件--hello_world.c //新增 c文件
--build/lite/components--applications.json //新增 配置component:hello_world_app的相关信息
--vender/hisilicon/hispark_pegasus--config.gn //新增 在子系统applications中新增component:hello_world_app