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