回复
【FFH】小熊派纯代码开发流程 原创 精华
Wait_Aurora
发布于 2022-2-9 21:10
浏览
0收藏
一、流程总览
创建目录及相应源码文件–>编写业务代码–>编写编译构建文件BUILD.gn–>编译烧录运行
二、源码目录结构
project 源码目录
*xxx.c 业务源码文件
*BUILD.gn 业务源码的编译脚本
三、编写程序代码
编写一个简单的C语言Hello world 程序
#include <stdio.h>
int main(int argc, char **argv)
{
printf("\n************************************************\n");
printf("\n\t\tHello BearPi!\n");
printf("\n************************************************\n\n");
return 0;
}
四、编写编译构建文件BUILD.gn
BUILD.gn文件是一种编译构建文件,类似于Cmake。相较于Cmake,当工程规模增大到难以想象的量级时,编译速度和工程模块的划分变得尤为重要,而gn便很好解决了这两个问题
import("//build/lite/config/component/lite_component.gni") #导入 gni 组件
# 将源码hello_world.c编译成hello_world_lib库文件,同时输出的可执行文件名称由output_name定义为hello_world
executable("hello_world_lib") {
output_name = "hello_world"
sources = [ "hello_world.c" ]
include_dirs = []
defines = []
cflags_c = []
ldflags = []
}
# 将hello_world_lib打包成 lite_component,命名为my_app组件。
lite_component("my_app") {
features = [
":hello_world_lib",
]
}
五、添加“my_sample”组件
5.1添加组件my_sample的配置
找到文件build/lite/components/applications.json
添加以下内容
{
"component": "my_sample",
"description": "my samples",
"optional": "true",
"dirs": [
"applications/BearPi/BearPi-HM_Micro/samples/my_first_app"
],
"targets": [
"//applications/BearPi/BearPi-HM_Micro/samples/my_first_app:my_app"
],
"rom": "",
"ram": "",
"output": [],
"adapted_kernel": [ "liteos_a" ],
"features": [],
"deps": {
"components": [],
"third_party": [ ]
}
},
如图所示
5.2新增my_sample组件的条目
找到文件vendor/bearpi/bearpi_hm_micro/config.json
在components出添加下面这句
{ "component": "my_sample", "features":[] },
如图所示
六、编译烧录
参考之前文章Linux下配置小熊派-鸿蒙·叔设备开发(南向)的开发环境
七、运行
串口连接小熊派终端,输入命令./bin/hello_world执行程序
六、流程回顾
系统的编译会从vendor/bearpi/bearpi_hm_micro/config.json文件开始编译“my_sample”这个组件,“my_sample”组件中的targets指向了BUILD.gn中的my_app,my_app中的feature指向了hello_world_lib,最终指向我们编写的hello_world.c源文件。
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2022-2-10 14:17:10修改
赞
2
收藏
回复
相关推荐