今日看点

HarmonyOS CMSIS

发表于话题:HarmonyOS 2
发布时间:2021-06-02

HarmonyOS CMSIS-RTOS2接口简介

目录

作者介绍CMSIS-RTOS2接口简介鸿蒙与CMSIS-RTOS2接口联系如何使用CMSIS-RTOS2接口往期回顾

作者介绍

刘懿宵,男,西安工程大学电子信息学院,2017级本科生。
专业:通信工程
电子邮件:liuyixiao@stu.xpu.edu.cn

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® Cortex®-M 处理器的通用的RTOS接口。为需要RTOS功能的软件组件提供了标准化的API。

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

鸿蒙与CMSIS-RTOS2接口联系

鸿蒙在CMSIS-RTOS2接口中封装了LiteOS-m的内核代码
CMSIS-RTOS2实现://kernel/liteos_m/kal/cmsis/cmsis_liteos2.c

osStatus_t osKernelInitialize(void) { if (OS_INT_ACTIVE) { return osErrorISR; } if (g_kernelState != osKernelInactive) { return osError; } if (LOS_OK == LOS_KernelInit()) { g_kernelState = osKernelReady; return osOK; } else { return osError; } }

调用了LOS_KernelInit

osThreadId_t osThreadNew(osThreadFunc_t func, void *argument, const osThreadAttr_t *attr) { UINT32 uwTid; UINT32 uwRet; LosTaskCB *pstTaskCB = NULL; TSK_INIT_PARAM_S stTskInitParam; if (OS_INT_ACTIVE) { return NULL; } if ((attr == NULL) || (func == NULL) || (attr->priority < osPriorityLow1) || (attr->priority > osPriorityAboveNormal6)) { return (osThreadId_t)NULL; } (void)memset_s(&stTskInitParam, sizeof(TSK_INIT_PARAM_S), 0, sizeof(TSK_INIT_PARAM_S)); stTskInitParam.pfnTaskEntry = (TSK_ENTRY_FUNC)func; #ifndef LITEOS_WIFI_IOT_VERSION stTskInitParam.uwArg = (UINT32)argument; #else stTskInitParam.auwArgs[0] = (UINT32)argument; #endif stTskInitParam.uwStackSize = attr->stack_size; stTskInitParam.pcName = (CHAR *)attr->name; stTskInitParam.usTaskPrio = OS_TASK_PRIORITY_LOWEST - ((UINT16)(attr->priority) - LOS_PRIORITY_WIN); /* 0~31 */ uwRet = LOS_TaskCreate(&uwTid, &stTskInitParam); if (LOS_OK != uwRet) { return (osThreadId_t)NULL; } pstTaskCB = OS_TCB_FROM_TID(uwTid); return (osThreadId_t)pstTaskCB; }

新建

osStatus_t osDelay(uint32_t ticks) { UINT32 uwRet = 0; if (ticks == 0) { return osOK; } if (osKernelGetState() != osKernelRunning) { uwRet = LOS_HalDelay(ticks); } else { uwRet = LOS_TaskDelay(ticks); } if (uwRet == LOS_OK) { return osOK; } else { return osError; } }

延迟

如何使用CMSIS-RTOS2接口

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

osThreadId_t osThreadNew (osThreadFunc_t func, void *argument, const osThreadAttr_t *attr); //新建 /** * @brief Obtains the name of a thread. * * @param thread_id Indicates the thread ID, which is obtained using osThreadNew or osThreadGetId. * @return Returns the thread name; returns NULL in the case of an error. * @since 1.0 * @version 1.0 */ const char *osThreadGetName (osThreadId_t thread_id); //获取任务名 /** * @brief Obtains the ID of the currently running thread. * * @return Returns the thread ID; returns NULL in the case of an error. * @since 1.0 * @version 1.0 */ osThreadId_t osThreadGetId (void); //获取任务ID /** * @brief Obtains the state of a thread. * * @param thread_id Indicates the thread ID, which is obtained using osThreadNew or osThreadGetId. * @return Returns the thread state. * @since 1.0 * @version 1.0 */

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

主要看这部分

往期回顾

2021物联网开发学习自学历程记录汇总

标签组:[软件] [接口] [cmsis

本文来源:https://www.kandian5.com/articles/23884.html

相关阅读

韩剧《Crash》第1-12全集剧情(含结局)

韩剧《Crash》(碰撞搜查线)讲述无人关注的交通犯罪调查组展开横冲直撞的犯罪追踪故事,该剧是韩国首部以交通犯罪为主要题材的电视剧。韩剧《Crash》第1集分集剧情交通犯罪调查组(TCI)是一支由四...

2024-05-20

感情太好了!都暻秀自曝和好友李光洙一起去医院体检

近日,艺人都暻秀与导演罗英锡两人一起进行了网络直播,在直播中都暻秀谈及了与演员李光洙之间的有趣故事,引发了网友们的热议。众所周知,在韩娱有很多艺人小圈子,都暻秀和李光洙就是其中一个小圈子,他们这个...

2024-05-20

《狐妖小红娘月红篇》定档5月23日 杨幂龚俊涂山结缘上演唯美妖凡恋

由爱奇艺、阅文影视、恒星引力联合出品,恒星引力制作,爱奇艺桃乐奇工作室打造,龚宇、侯晓楠、王一栩、张宇成担任出品人,王晓晖、侯晓楠、林珊担任总监制,戴莹、王一栩、张宇成担任总制片人,麦贯之、杜林执导,...

2024-05-20

《庆余年2》大结局

最近热播的《庆余年2》,在播出后立刻引起了轰动,不仅吸引了大量观众的目光,也俘获了不少粉丝的心。其中关于《庆余年2》大结局无疑是最近大家最关注的,今天我们就一起来讨论讨论。《庆余年2》大结局结局是庆帝...

2024-05-20

《庆余年2》陈萍萍身份曝光 陈萍萍被怎样羞辱?

《庆余年2》陈萍萍身份曝光:陈萍萍,身份卓然的庆国监察院院长,他的一生如同巍峨的山峰,屹立不摇。在庆国的繁华和阴谋交织的舞台上,陈萍萍的身份既是庆帝的亲信太监,更是范闲的师父和朋友。他的传奇故事,集智...

2024-05-20

泰剧《日暮情深》每周更新几集

目前,正在热播的《日暮情深》无论从演员的颜值还是演技以及剧情等方面都已经吸引了许多观众的关注。其中,针对泰剧《日暮情深》每周更新几集的讨论也是一直不断,现在,我们就来看一下这个观众最为关心的话题。 泰...

2024-05-20

【爱盘点】人气动漫《鬼灭之刃》中九柱有哪些?战力又如何?

人气动漫《鬼灭之刃》可以说是这几年风靡全球的热血动漫了,在一众漫画中一骑绝尘,不仅动画世界范围内大爆,漫画销量也突破了1.5亿册,着实是火爆。目前,该漫画的动画作品《鬼灭之刃柱训练篇》也正式推出,...

2024-05-20

汪峰官宣恋情,展现担当与真诚,网友点赞“好男人”

在娱乐圈中,汪峰的名字总是和音乐紧密相连,而今天,他再次成为焦点,不过这次是因为他的个人生活。汪峰在社交媒体上正式宣布与网红森林北的恋情,同时对近期关于他的婚内出轨谣言进行了坚决而有力的回击。汪峰在官...

2024-05-20

《我们仨》涠洲岛环岛之旅 观山看海一样都不少

旅行探索真人秀节目《我们仨》正在湖南卫视、芒果TV热播中。第九期节目中,郭麒麟、毛不易、魏大勋以及飞行嘉宾秦霄贤深入探索北海涠洲岛,带领观众们开启了一场自由且治愈的海岛之行,在远离尘嚣的生活中感受无忧...

2024-05-20

《2024中国诗词大会》圆满收官 我们一直“在路上”

中华诗词如万古江河,有多少光辉的诗篇,就有多少为了远方的“在路上”。“路漫漫其修远兮,吾将上下而求索”,在爱国的路上,忠诚升华为信仰;“踏遍青山人未老,风景这边独好”,在征战的路上,山川都迸发出激昂;...

2024-05-20