3224|2

18

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

【BearPi-HM Nano,玩转鸿蒙“碰一碰”】-3-HarmonyOS编译架构学习记录 [复制链接]

本帖最后由 sun63312 于 2021-6-9 23:42 编辑

HarmonyOS例程学习记录

  上次教程已经通过两种方法获得了源码和两种方式进行编译。而在继续跟着小熊提供的教程熟悉HarmonyOS期间华为也在6月2日正式发布了HarmonyOS2.0。那么下面就是简单记录学习过程中我觉得比较重点的点和一些问题:

1、例程存放的相对路径:

  applications\BearPi\BearPi-HM_Nano\sample

2、HarmonyOS编译工具是基于Ninja的,小熊介绍说Ninja相比于以前用的Makefile更加注重编译的速度。那在我使用中确实编译的是挺快的基本10s就编译完成了。

3、编译不同例程或添加新例程,我们需要去操两个.gn文件

  一个是业务编译构建gn文件,在对于的例程文件夹下:

  另一个是模块编译构建gn文件,就在sample文件夹下

  •A2_kernel_timer是相对路径,指向业务gn文件:

    applications\BearPi\BearPi-HM_Nano\sample\A2_kernel_timer\BUILD.gn

  •timer_example是目标,指向applications\BearPi\BearPi-HM_Nano\sample\A2_kernel_timer\BUILD.gn中的

    static_library("timer_example")

4、另外描述编译模块路径Json文件(整个源码中有很多Json文件,小熊重点解释了这个)

  文件相对路径:build\lite\product\BearPi-HM_Nano.json

  后续我们自己添加文件夹或者修改,都在在这个json下进行修改(我还没试过)

  以applications为例,里面的sample:app指的就是模块编译构建gn文件中的

5、而例程的.c文件中通过APP_FEATURE_INIT()这个注入接口来实现例程的函数初始化

6、上面是介绍的是如何简单的运行例程,那么代码最重要开始入口main()函数是:

  vendor\hisi\hi3861\hi3861\app\wifiiot_app\src\app_main.c下的app_main()

7、在app_main()的最后我们会调用HOS_SystemInit()这是系统初始化入口

  相对路径:base\startup\services\bootstrap_lite\source\system_init.c

8、其中SYS_INIT(service);就用来初始化我们例程的将我们写的APP_FEATURE_INIT()里面的函数添加。不过这个初始化的代码有点绕,我还没理解透,而且还有两个问题:

  ①教程说调用的是下图中的SYS_INIT(),为啥会用到__ICCARM__这个编译器预定宏?

  ②教程里突然说道用的是SYS_CALL(name,2),也是没有理解为啥用的是2不是其他,5个SYS_CALL有什么区别?

 

小结:

  开始初步了解HarmonyOS,很多地方都还不是很懂,后面学懂多少就继续更新。

此帖出自ARM技术论坛

最新回复

牛,收藏了过粽子节看看。   详情 回复 发表于 2021-6-11 17:52
点赞 关注
 

回复
举报

2549

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 

终于看到了鸿蒙操作这块板子的代码结构

此帖出自ARM技术论坛
 
 
 

回复

7608

帖子

18

TA的资源

五彩晶圆(高级)

板凳
 

牛,收藏了过粽子节看看。

此帖出自ARM技术论坛
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表