鸿蒙系统学习 LiteOS-m(六)

目录

系统概述

OpenHarmony LiteOS-M核内核架构图

组件、芯片解决方案和产品解决方案配置规则

 板级系统移植

HAL层实现

UTILS

IOT外设子系统


系统概述

      需要明确一个大的前提,不管是kernel,lite os-a,还是lite os-m,在鸿蒙系统中的分层层次地位,他是最底层,最低层,也就说这规范了他的功能和能力范围,对于这两个小的系统来说,基本上也没有什么东西,只是鼓吹了软总线的概念。和其他任何os的功能无本质差异。简单的说这个os的移植实际上对于开发者来说无意义。只有他的服务层和业务能力层才能体现鸿蒙的特性。华为总是不提本质,只说几十KB内存大小,有些回避的意思。

   以下这些资料也只是网上的说法,最终还是要看具体的代码,技术一旦被吹,就很难着地。很多东西也不正确,或者说只是一些提法,但未必能实现。 LiteOS-M内核代码本质上是套娃操作,里面用的还是之前旧的系统,本来就是个小系统。

    OpenHarmony LiteOS-M内核是面向IoT领域构建的轻量级物联网操作系统内核,具有小体积、低功耗、高性能的特点,其代码结构简单,主要包括内核最小功能集、内核抽象层、可选组件以及工程目录等,分为硬件相关层以及硬件无关层,硬件相关层提供统一的HAL(Hardware Abstraction Layer)接口,提升硬件易适配性,不同编译工具链和芯片架构的组合分类,满足AIoT类型丰富的硬件和编译工具链的拓展。其架构图如图1所示:

OpenHarmony LiteOS-M核内核架构图

liteos-m中主要分为KAL、Components、Kernel和Utils四个模块。

  • KAL模块作为内核对外的接口依赖Components模块和Kernel模块。

  • Components模块可插拔,它依赖Kernel模块。

  • 在Kernel模块中,其中硬件相关的代码放在kernel的arch目录中,其余为硬件无关的代码。内核功能集(task、sem等)的实现依赖硬件相关的arch代码,例如任务上下文切换、原子操作等。

  • Utils模块作为基础代码块,被其他模块依赖。

 OpenHarmony LiteOS-M内核的编译构建系统是一个基于gn和ninja的组件化构建系统,支持按组件配置、裁剪和拼装,按需构建出定制化的产品。编译构建系统的详细信息可以参考轻量和小型系统编译构建指导

一个基于gn和ninja的构建系统,以支持OpenHarmony组件化开发为目标,提供以下基本功能:

  • 支持按组件拼装产品并编译。

  • 独立构建芯片解决方案厂商源码。

  • 独立构建单个组件。

  1. hb set: 设置OpenHarmony源码目录和要编译的产品。
  1.  hb build: 编译产品、开发板或者组件。编译主要过程如下:
    • 读取编译配置:根据产品选择的开发板,读取开发板config.gni文件内容,主要包括编译工具链、编译链接命令和选项等。
    • 调用gn:调用gn gen命令,读取产品配置生成产品解决方案out目录和ninja文件。
    • 调用ninja:调用ninja -C out/board/product启动编译。
    • 系统镜像打包:将组件编译产物打包,设置文件属性和权限,制作文件系统镜像。

组件、芯片解决方案和产品解决方案配置规则

为了实现芯片解决方案、产品解决方案与OpenHarmony是解耦的、可插拔的,组件、芯片解决方案和产品解决方案的路径、目录树和配置需遵循一定的规则,具体如下:

  • 组件

组件源码路径命名规则为:{领域}/{子系统}/{组件},组件目录树规则如下:

  • 芯片解决方案

芯片解决方案是指基于某款开发板的完整解决方案,包含驱动、设备侧接口适配、开发板sdk等。芯片解决方案是一个特殊的组件,源码路径规则为:device/{芯片解决方案厂商}/{开发板}。芯片解决方案组件会随产品选择的开发板默认编译。芯片解决方案目录树规则如下:

 板级系统移植

zh-cn/device-dev/porting/移植概述-0.md · OpenHarmony/docs - Gitee.com

以开发板Nucleo-F767Zi为例,演示如何编译运行OpenHarmony LiteOS-M内核工程。在本地目录,执行下述命令克隆示例代码。

git clone https://gitee.com/harylee/nucleo_f767zi.git

https://gitee.com/openharmony/docs/tree/master

 

HAL层实现

HAL层主要功能是实现轻OpenHarmony与芯片的解耦,以下模块描述的是轻OpenHarmony系统对芯片接口的依赖情况。

git@gitee.com:openharmony/docs.git
zh-cn/device-dev/porting · OpenHarmony/docs - 码云 - 开源中国 (gitee.com)
OpenHarmony文档仓库  docs: OpenHarmony documentation | OpenHarmony开发者文档 - Gitee.com

UTILS

基本介绍:

公共基础提供通用的基础组件,这些基础组件可被各业务子系统及上层应用所使用

IOT外设子系统

基本介绍

提供轻OpenHarmony专有的外部设备操作接口。本模块提供设备操作接口有:FLASH, GPIO, I2C, PWM, UART, WATCHDOG等。

IOT外设子系统HAL层接口说明:

需要芯片适配相关接口的实现,对芯片设备外设接口依赖请参考IOT外设子系统的HAL头文件

WLAN服务适用于设备接入WLAN无线局域网场景,包括:

  • 使用STA模式,作为接入方接入其他设备、路由器开启的WLAN无线局域网接入点;

  • 使用AP模式,开启无线局域网接入点,允许其他设备连接。

XTS是OpenHarmony生态认证测试套件的集合,当前包括acts(application compatibility test suite)应用兼容性测试套

  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
鸿蒙系统中安装risc-v架构的声卡驱动,需要获取针对risc-v架构的声卡驱动程序,并将其安装到系统中。具体步骤如下: 1. 获取risc-v架构的声卡驱动程序。您可以在开发者社区或者相关论坛中获取该驱动程序的源代码或者二进制文件。 2. 将声卡驱动程序复制到鸿蒙系统中。您可以使用adb命令将驱动程序复制到鸿蒙设备中。例如,可以使用以下命令将驱动程序复制到鸿蒙设备的/data目录下: ``` adb push driver.ko /data/ ``` 其中,driver.ko是您要安装的声卡驱动程序文件名。 3. 在鸿蒙设备中加载声卡驱动程序。您可以使用insmod命令来加载声卡驱动程序。例如,可以使用以下命令来加载driver.ko驱动程序: ``` insmod /data/driver.ko ``` 4. 检查声卡驱动程序是否正确加载。您可以使用lsmod命令来查看已加载的模块列表,并确认您的声卡驱动程序是否正确加载。例如,可以使用以下命令来查看已加载的模块列表: ``` lsmod ``` 如果您能够在列表中看到您的声卡驱动程序,那么说明该驱动程序已经正确加载。 注意:以上步骤仅供参考,实际操作可能会因设备和驱动程序的不同而有所差异。在安装任何驱动程序之前,请务必备份您的数据,并谨慎操作。同时,鸿蒙系统的内核可能会因为驱动程序的不兼容而出现问题,因此在安装驱动程序之前,建议您先了解鸿蒙系统的相关文档,以确保驱动程序的兼容性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值