梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记 原创

wx62ef41498cc09
发布于 2022-8-7 12:55
浏览
0收藏


首先从快速入门开始

大部分语言第一个程序都是从hello_world开始OpenHarmony也不例外

2.1OpenHarmony快速入门:Hello_World
1、新增my_app文件夹
在./applications/BearPi/BearPi-HM_Nano/sample路径下新建一个my_app目录,用于存放业务源码文件。
2、新增hello_world.c文件
在.J/applications/BearPi/BearPi-HM_Nano/sample/my_app路径下新建一个hello_world.c文件,该文件为业务源码文件。
3、新增BUILD.gn文件
在./applications/BearP/BearPiHM_Nano/sample/my_app路径下新建一个BUILD.gn文件,该文件为业务源码编译脚本。
梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区
梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

编写业务编译构建文件BUILD.gn

在./applications/BearPi/BearPi-HM/sample/my…app下的BUILD.gn文件中添加如下代码。
梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

static_library中指定业务模块的编译结果,为静态库文件libmyapp.a,开发者根据实际情况完成填写。
sources中指定静态库.a所依赖的.c文件及其路径,若路径中包含"“/”"则表示绝对路径(此处为代码根路径),若不包含"Y广则表示相对路径。
include…dirs.中指定source所需要依赖的.h文件路径。

编写模块BUILD.gn文件,指定需参与构建的特性模块:

在./applications/BearPi/BearPi-HM/sample下的BUILD.gn文件中添加如下代码。
梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

my.app是相对路径,指向./applications/BearPi/BearPi-HM/sample/my_app/BUILD.gn。
myapp是目标,指向./applications/BearPi/BearPi-HM/sample/my_app/BUILD.gn中的static_library(“myap”)。

调试Helloworld程序:
梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

2.2OpenHarmony快速入门:点亮LED
1.新增my_led文件夹
在./applications/BearPi/BearPi-HM_Nano/sample路径下新建一个my_led目录,用于存放业务源码文件。
2.新增led_example.c文件
在./applications/BearPi/BearPi-HM_Nano/sample/my_led路径下新建一个led_example.c文件,该文件为业务源码文件。
3.新增BUILD.gn文件
在./application/BearPi/BearPi-HM_Nano/sample/my_led路径下新建一个BUILD.gn文件,该文件为业务源码编译脚本。

添加LED源码:
梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区
梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

业务源码编译BUILD.gn文件
梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

调试LED程序
梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

2.3 编译构架的介绍
什么是Ninja?

在Unix/Linux下通常使用Makefile来控制代码的编译,但是Makefile对于比较大的项目有时候会比较慢,代码在编译都变成了程序员放松的借口了。所以这个Google的程序员在开发Chrome的时候因为忍受不了Makefile的速度,自己重新开发出来一套新的控制编译的工具叫作Ninja, Ninja相对于Makefile这套工具更注重于编译速度。除了Chrome现在还有一-些其他的比较大的项目也在开始使用Ninja。

模块gn文件
梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

业务gn文件
梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

json文件
梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区
 初始化入口
梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

注册入口
梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

2.4OpenHarmony CMSIS接口简介
1.什么是CMSIS-RTOS2接口?

CMSIS是Cortex微控制器软件接标准(Cortex Microcontroller Software Interface Standard)是ARM和一些编译器厂家以及半导体厂家共同遵循的一套标准,是由ARM专i 门针对Cortex-M系列提出的标准。在该标准的约定下,ARM和芯片厂商会提供一些通用的API接口来访问Cortex内核以及一 些专用外设,以减少更换芯片以及开发工具等移植工作所带来的金钱以及时间上的消耗。

CMSIS-RTOS2 (CMSIS-RTOS API Version 2)是ArmR CortexR-M 处理器的通用的RTOS接口。为需要RTOS功能的软件组件提供了标准化的API。

CMSIS-RTOS2是一一个通用的API,它与底层的RTOS内核无关,写应用程序的程序员在用户代码中调用CMSIS-RTOS2 API函数,可以更方便地将应用程序从- -个RTOS到另一个RTOS,使用CMSIS-RTOS2 API的中间件也可以避免很多不必要的移植工作。

2.鸿蒙与CMSIS-RTOS2接口联系:

鸿蒙在CMSIS-RTOS2接口中封装了LiteOS-m的内核代码
梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

3.如何使用CMSIS-RTOS2接口

1、在业务代码中包含“cmsis_os2.h”
2、通过调用“cmsis_os2.h”中的API函数使用系统相关功能

更多API介绍请参考: https://arm-software.github.io/CMSIS_5/RTOS2/html/index.html

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
收藏
回复
举报
回复
    相关推荐