鸿蒙Hi3861学习十二-Huawei LiteOS-M(osXX与LOS_XX)

LOS_XX是LiteOS_M或LiteOS_A内核提供的接口,与具体内核类型有关,如LOS_TaskCreate。osXX是CMSIS标准接口,如osThreadNew,是对LOS_XX的封装,便于跨内核开发。1.0版本仅支持CMSIS标准,1.0.1及以上版本开始支持CMSIS和POSIX标准。osXX的实现最终会调用到LOS_XX相应的内核接口来完成功能。
摘要由CSDN通过智能技术生成

一、LOS_XX是什么

        LOS_XX是LiteOS_M或LiteOS_A内核提供的接口。例如:LOS_TaskCreate、LOS_TaskCreate、LOS_SemCreate等。因为LiteOS_M和LiteOS_A是针对不同的内核,所以LOS_XX在实现上也是有所不同的。也就是说LOS_XX跟具体的内核类型是有关系的

        这里只说一下的源文件位置,有兴趣可以自行研究。

        1.0版本,LiteOS_M

code-1.0\kernel\liteos_m\kernel\base

         1.0.1版本,LiteOS_M

code-1.0.1\L01\kernel\liteos_m\kernel\src

        1.1版本,LiteOS_M

code-1.1.0\code-1.1.0\kernel\liteos_m\kernel\src

 二、什么是osXX

        osXX是cmsis标准的接口,例如osThreadNew、osTimerNew、osSemaphoreNew等。

        因为这些函数我们在之前的文章中都有详细介绍,这里不做过多介绍,只介绍这些文件的位置,感兴趣的自行研究。

        1.0版本

code-1.0\kernel\liteos_m\components\cmsis\2.0

        1.0.1版本

code-1.0.1\L01\kernel\liteos_m\kal\cmsis

 

        1.1.0版本

code-1.1.0\code-1.1.0\kernel\liteos_m\kal\cmsis

         在cmsis_liteos2.c中,包含了osXX所有函数的实现

         需要注意的是,在1.0版本中,cmsis文件中还没有包含osMemoryXX相关的函数,只做了定义。所以,如果在1.0版本中调用osMemoryXX相关的函数,编译是会报错的。

三、二者的关系

        osXX实际上是对LOS_XX的更上一层的封装。上文说过,LOS_XX针对LiteOS_M和Lite_OSA实现是不同的。实际上,如果有更多的内核,LOS_XX可能会有更多不同的命名。那为了方便开发者开发,且在不同的内核上运行,osXX就诞生了。

        例如,如果A内核系统有AOS_XX,B内核有BOS_XX,C内核有COS_XX。当应用开发人员调用AOS_XX就只能在A内核上运行,调用BOS_XX只能在B内核上运行。这显然增加了跨内核的复杂度。而如果应用开发人员调用osXX,只要A内核、B内核、C内核都提供了osXX的实现,那么应用开发人员就不需要做任何适配,就可以在A内核、B内核、C内核的系统上跑

        注:1.0版本,只支持cmsis标准。1.0.1版本及更高版本,支持cmsis标准和posix标准

        1.0.1版本

code-1.0.1\L01\kernel\liteos_m\kal

         其实,从代码中也是可以找到osXX与LOS_XX的关系的。这里以osThreadNew函数为例,先看一下该函数的实体。

        可以看到,osThreadNew函数的实体中,实际还是调用了LOS_TaskCreate来实现任务的创建

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值