【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": [ ]
    }
},

如图所示
【FFH】小熊派纯代码开发流程-鸿蒙开发者社区

5.2新增my_sample组件的条目

找到文件vendor/bearpi/bearpi_hm_micro/config.json

在components出添加下面这句

{ "component": "my_sample", "features":[] },

如图所示
【FFH】小熊派纯代码开发流程-鸿蒙开发者社区

六、编译烧录

参考之前文章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
收藏
回复
举报
回复
    相关推荐