CMSIS-RTOS2 应用笔记 三 功能概述

CMSIS-RTOS2


概述在cmsis_os2.h头文件中实现的所有CMSIS-RTOS C API v2函数。


内核信息和控制

  • osKernelGetInfo:获取RTOS内核信息。
  • osKernelGetState:获取当前的RTOS内核状态。
  • osKernelGetSysTimerCount:获取RTOS内核系统定时器计数。
  • osKernelGetSysTimerFreq:获取RTOS内核系统的定时器频率。
  • osKernelInitialize:初始化RTOS内核。
  • osKernelLock:锁定RTOS内核调度程序。
  • osKernelUnlock:解锁RTOS内核调度程序。
  • osKernelRestoreLock:恢复RTOS内核调度器锁定状态。
  • osKernelResume:恢复RTOS内核调度程序。
  • osKernelStart:启动RTOS内核调度程序。
  • osKernelSuspend:挂起RTOS内核调度程序。
  • osKernelGetTickCount:获取RTOS内核计数。
  • osKernelGetTickFreq:获取RTOS内核滴答频率。
线程管理
  • osThreadDetach:分离线程(线程终止时可以回收线程存储)。
  • osThreadEnumerate:枚举活动线程。
  • osThreadExit:终止执行当前正在运行的线程。
  • osThreadGetCount:获取活动线程的数量。
  • osThreadGetId:返回当前正在运行的线程的线程ID。
  • osThreadGetName:获取线程的名称。
  • osThreadGetPriority:获取线程的当前优先级。
  • osThreadGetStackSize:获取线程的堆栈大小。
  • osThreadGetStackSpace:在执行期间基于堆栈水印记录获取线程的可用堆栈空间。
  • osThreadGetState:获取当前线程的线程状态。
  • osThreadJoin:等待指定的线程终止。
  • osThreadNew:创建一个线程并将其添加到Active Threads。
  • osThreadResume:恢复执行线程。
  • osThreadSetPriority:更改线程的优先级。
  • osThreadSuspend:挂起一个线程的执行。
  • osThreadTerminate:终止线程的执行。
  • osThreadYield:将控件传递到状态为READY的下一个线程。
线程标志
  • osThreadFlagsSet:设置线程的指定线程标志。
  • osThreadFlagsClear:清除当前正在运行的线程的指定线程标志。
  • osThreadFlagsGet:获取当前正在运行的线程的当前Thread Flags。
  • osThreadFlagsWait:等待当前正在运行的线程的一个或多个线程标志变为信号。
事件标志
  • osEventFlagsGetName:获取Event Flags对象的名称。
  • osEventFlagsNew:创建并初始化事件标志对象。
  • osEventFlagsDelete:删除事件标志对象。
  • osEventFlagsSet:设置指定的事件标志。
  • osEventFlagsClear:清除指定的事件标志。
  • osEventFlagsGet:获取当前的事件标志。
  • osEventFlagsWait:等待一个或多个事件标志变为信号。
通用等待功能
  • osDelay:等待超时(延时)。
  • osDelayUntil:等到指定的时间。
计时器管理
  • osTimerDelete:删除一个计时器。
  • osTimerGetName:获取计时器的名称。
  • osTimerIsRunning:检查一个计时器是否正在运行。
  • osTimerNew:创建并初始化定时器。
  • osTimerStart:启动或重启定时器。
  • osTimerStop:停止定时器
互斥管理
  • osMutexAcquire:如果被锁定,则获取互斥量或超时。
  • osMutexDelete:删除一个Mutex对象。
  • osMutexGetName:获取Mutex对象的名称。
  • osMutexGetOwner:获取拥有Mutex对象的线程。
  • osMutexNew:创建和初始化一个Mutex对象。
  • osMutexRelease:释放由osMutexAcquire获取的Mutex。
信号量
  • osSemaphoreAcquire:如果没有令牌可用,则获取信号量令牌或超时。
  • osSemaphoreDelete:删除一个信号量对象。
  • osSemaphoreGetCount:获取当前的信号量令牌计数。
  • osSemaphoreGetName:获取信号量对象的名称。
  • osSemaphoreNew:创建和初始化一个信号量对象。
  • osSemaphoreRelease:释放由osSemaphoreAcquire获取的信号量令牌。
内存池
  • osMemoryPoolAlloc:从内存池分配一个内存块。
  • osMemoryPoolDelete:删除内存池对象。
  • osMemoryPoolFree:将分配的内存块返回到内存池。
  • osMemoryPoolGetBlockSize:在内存池中获取内存块大小。
  • osMemoryPoolGetCapacity:获取内存池中的最大内存块数。
  • osMemoryPoolGetCount:获取内存池中使用的内存块数。
  • osMemoryPoolGetName:获取内存池对象的名称。
  • osMemoryPoolGetSpace:获取内存池中可用的内存块数。
  • osMemoryPoolNew:创建和初始化内存池对象。
消息队列
  • osMessageQueueDelete:删除消息队列对象。
  • osMessageQueueGet:如果Queue为空,则从队列获取消息或超时。
  • osMessageQueueGetCapacity:获取消息队列中的最大消息数。
  • osMessageQueueGetCount:获取消息队列中排队消息的数量。
  • osMessageQueueGetMsgSize:在内存池中获取最大消息大小。
  • osMessageQueueGetName:获取消息队列对象的名称。
  • osMessageQueueGetSpace:获取消息队列中消息的可用插槽数。
  • osMessageQueueNew:创建和初始化消息队列对象。
  • osMessageQueuePut:如果队列已满,则将消息放入队列或超时。
  • osMessageQueueReset:将消息队列重置为初始空状态。
RTX5具体API
  • osRtxErrorNotify:操作系统错误回调函数。
  • osRtxIdleThread:操作系统空闲线程。
  • osRtxSysTimerSetup:OS系统定时器功能(默认实现使用SysTick)
  • osRtxSysTimerEnable:启用系统定时器。
  • osRtxSysTimerDisable:禁用系统定时器。
  • osRtxSysTimerAckIRQ:确认系统定时器IRQ。
  • osRtxSysTimerGetCount:获取系统计时器计数。
  • osRtxSysTimerGetFreq:获取系统定时器频率。

可以从线程和中断服务程序(ISR)调用以下CMSIS-RTOS2函数:


CMSIS-RTOS》是一本PDF文档,本文将以300字回答有关此文档的问题。 《CMSIS-RTOS》是一本关于Cortex微控制器软件接口标准(CMSIS)中的实时操作系统(RTOS)的PDF文档。该文档详细介绍了CMSIS-RTOS的特性、结构、API和使用方法。 CMSIS-RTOS是一种用于嵌入式系统的实时操作系统,它提供了一套标准化的API和接口,用于编写和管理多任务、多线程和中断驱动的应用程序。该文档介绍了如何使用CMSIS-RTOS构建可靠和高效的嵌入式系统。 文档首先介绍了CMSIS-RTOS的基本概念,包括任务、线程、中断和事件。然后,它详细描述了每个概念的特性和用法,包括任务管理、内存管理、同步和互斥机制等。 此外,文档还介绍了CMSIS-RTOS的结构和组件,如内核、调度器和定时器。它说明了每个组件的功能和使用方法,以及它们之间的关系和依赖关系。 最后,文档提供了一些示例代码和实践指南,以帮助读者更好地理解和应用CMSIS-RTOS。它演示了如何创建、启动和管理任务,以及如何使用互斥锁和信号量进行任务间的数据共享和同步。 总而言之,《CMSIS-RTOS》是一本全面且实用的PDF文档,它为开发人员提供了使用CMSIS-RTOS构建嵌入式系统的详细指南和参考资料。无论是初学者还是有经验的开发人员,都能从中获得关于实时操作系统的深入了解和实际应用的指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值