华为开发者课堂鸿蒙设备开发实战第三天笔记

华为开发者课堂鸿蒙设备开发实战第三天笔记

学习时间二零二二年七月十四日:

学习资料:

https://education.huaweicloud.com/courses/course-v1:HuaweiX+CBUCNXTX003+Self-paced/courseware/bd738f669ae94fd7ab14d1c535651eba/e650e95cfc3344048c5fb85e910a50d4/

上一章节回顾:

开发环境搭建,学习资料:

https://education.huaweicloud.com/courses/course-v1:HuaweiX+CBUCNXTX003+Self-paced/courseware/e126feacd8b94fb38ea4c30728606d59/0731d00e4f664d1d80227235ce2501cc/

本节内容,open Harmony快速入门

第一章节为基础的hello world:

本节主要为四部分

1.添加Hello World源码文件

2.编写Hello World业务代码

3.编写编译构建文件BUILD.gn

4.调试Hello World程序

 添加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文件,该文件为业务源码编译脚本。

 

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

编写用于将业务构建成静态库的BUILD.gn文件
在./applications/BearPi/BearPi-HM/sample/my..app下的BUILD.gn文件中添加如下代码。

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

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

在./applications/BearPi/BearPi-HM/sample下的BUILD.gn文件中添加如下代码。

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

然后打开

 进行编译。查看开发版设置波特率与烧录文件,

 

 

当显示出hello world便是编译成功:

总结:1、掌握如何创建业务源码文件。2、掌握如何编写业务源码. 3、掌握如何编译业务源码. 4、掌握串口工具的使用,较为复杂,文件牵扯过多。须在前置文件都配置无问题下方可正常进行实操。

第二章:点亮led灯。

主要内容:如何编写led灯程序。

如何编译烧录点亮led灯程序

如何调试点亮led灯程序。

主要操作由以下4步:
添加点亮led灯源码文件。

编写点亮led灯业务代码。

编写编译构建文件build.gn

调试led灯程序。

首先点亮led源码文件:

1、新增my_led文件夹
在./applications/BearPi/BearPi-HM_Nano/sample路径下新建一个my_led目录,用于存放业务源码文件。
⒉新增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文件,该文件为业务源码编译脚本。

 

 

 编译流程与hello world流程相同,同样使用mobaxterm

波特率同样设置为921600,

当led变亮便编译成功。此时我们改变代码使用for循环。改变灯泡亮的形态,

使其闪烁。具体代码改变如下所示:

 

 重新编译烧录,可以看到led灯进行闪烁。

课后总结:

.1、掌握如何在一个工作目录下添加多个案例·

2、掌握如何点亮LED灯
3、掌握如何让LED灯闪烁
第三节为编译构架的介绍:主要由以下三点

ninja编译工具,如何编译模块,代码运行逻辑

首先是ninja编译工具介绍

什么是Ninja
在Unix/Linux下通常使用Makefile来控制代码的编译,但是Makefile对于比较大的项目有时候会比较慢,代码在编译都变成了程序员放松的借口了。所以这个Google的程序员在开发Chrome的时候因为忍受不了Makefile的速度,自己
重新开发出来一套新的控制编译的工具叫作Ninja,Ninja相对于Makeile)X套上具史土里丁濡年述度。际」现在还有一些其他的比较大的项目也在开始使用Ninja。
 其次是如何编译模块;

 入口函数由于没有main.c所以由

来进行代替main.c。

其他部分文件有

 代码执行是由

初始化入口,以及注册入口进行执行、

 总结,·1、了解如何编译模块· 2、掌握代码是如何执行的。。具体内容较为复杂,代码一环扣一环,逻辑复杂不好理清,学习效果并不好。希望后续有更清晰的讲解。

第四节OpenHarmony CMSIS-RTOS2接口简介::

主要有以下3点:

什么是CMSIS-RTOS2接口
鸿蒙是如何封装CMSIS-RTOS2接口

如何使用CMSIS-RTOS2接口

总结为1.CMSIS-RTOS2接口简介
鸿蒙与CMSIS-RTOS2接口联系

3.如何使用CMSIS-RTOS2接口

首先是CMSIS-RTOS2接口简介

什么是CMSIS-RTOS2接口
CMSIS是Cortex微控制器软件接口标准(Cortex Microcontroller Software Interface Standard)是ARM和一些编译器厂家以及半导体厂家共同遵循的一套标准,是由ARM专门针对Cortex-M系列提出的标准。在该标准的约定下,ARM和芯片厂商会提供一些通用的API接口来访问Cortex内核以及一些专用外设,以减少更换芯片以及开发工具等移植工作所带来的金钱以及时间上的消耗。
CMSIS-RTOS2(CMSIS-RTOS API Version 2)是Arm@ CortexR-M处理器的通用的RTOS接口。为需要RTOS功能的软件组件提供了标准化的API。
CMSIS-RTOS2是一个通用的API,它与底层的RTOS内核无关,写应用程序的程序员在用户代码中调用CMSIS-RTOS2API函数,可以更方便地将应用程序从一个RTOS到另一个RTOS,使用CMSIS-RTOS2 API的中间件也可以避免很多不必要的移植工作。

其次便是鸿蒙与CMSIS-RTOS2接口联系:

鸿蒙在CMSIS-RTOS2接口中封装了LiteOS-m的内核代码

 

 最后是如何使用CMSIS-RTOS2接口

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

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

.1、了解openHarmony与CMSIS-RTOS2接口联系·2、掌握如何使用CMSIS-RTOS2接口
课程老师说这节课比较简单,但是由于我自身原因。部分知识仍是一知半解,仍有较大进步空间。

本章总结,今天内容主要为代码部分实操,所需要的软件均为前面所配置好的软件,所及知识量较大,学习难度随之也较之上升,也因此收获也是因之提升。

 


 


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值