uC-OS-III 3.05 实时内核API参考手册

需积分: 9 1 下载量 113 浏览量 更新于2024-07-05 收藏 795KB PDF 举报
"µC-OS-III 3.05 API Reference.pdf" µC/OS-III是Jean J. Labrosse开发的一款实时操作系统(RTOS),特别设计用于微控制器环境。这个API参考手册详细介绍了µC/OS-III 3.05版本的各种功能和接口,帮助开发者理解和使用该操作系统。 1. **事件标志(Event Flags)** - **OSFlagCreate**: 创建一个新的事件标志组,允许线程通过设置或清除标志来同步。 - **OSFlagDel**: 删除一个已经创建的事件标志组,释放相关的内存资源。 - **OSFlagPend**: 使当前线程等待直到至少有一个指定的标志被设置。 - **OSFlagPendAbort**: 中止一个线程对事件标志的等待操作。 - **OSFlagPendGetFlagsRdy**: 获取并清除已准备好的事件标志。 - **OSFlagPost**: 设置事件标志,可能唤醒等待该标志的线程。 2. **互斥量(Mutual Exclusion Semaphores)** - **OSMutexCreate**: 创建一个互斥量,用于保护共享资源的访问。 - **OSMutexDel**: 删除不再使用的互斥量。 - **OSMutexPend**: 使线程等待获取互斥量的控制权。 - **OSMutexPendAbort**: 中止线程对互斥量的等待。 - **OSMutexPost**: 释放互斥量,允许其他等待的线程继续执行。 3. **时间管理(Time Management)** - **OSTimeDly**: 按照ticks延迟线程的执行。 - **OSTimeDlyHMSM**: 延迟线程,可以指定小时、分钟、秒和毫秒。 - **OSTimeDlyResume**: 继续之前被延时的线程。 - **OSTimeGet**: 获取系统当前的ticks时间。 - **OSTimeSet**: 设置系统的时间(ticks)。 - **OSTimeTick**: 定义了RTOS的时间滴答处理函数。 - **OSTimeTickHook**: 时间滴答钩子函数,可以在每个时间滴答发生时执行用户定义的代码。 - **OSTimeDynTick**: 动态时间滴答管理,用于优化定时器性能。 4. **线程本地存储(Thread Local Storage, TLS)** - **OS_TLS_GetID**: 获取线程的TLS ID,用于识别线程的特定存储区域。 - **OS_TLS_GetValue**: 从线程的TLS区域中获取值。 - **OS_TLS_SetDestruct**: 设置TLS区域的清理函数,在线程结束时自动调用。 - **OS_TLS_SetValue**: 在线程的TLS区域中设置值。 5. **消息队列(Message Queues)** - **OSQCreate**: 创建一个新的消息队列,用于线程间的异步通信。 - **OSQDel**: 删除一个消息队列。 - **OSQFlush**: 清空消息队列中的所有消息。 - **OSQPend**: 使线程等待接收到消息队列中的消息。 - **OSQPendAbort**: 中止线程对消息队列的等待。 - **OSQPost**: 将消息发送到消息队列,可能唤醒等待的接收线程。 6. **信号量(Semaphores)** - **OSSemCreate**: 创建一个信号量,用于线程同步和资源计数。 - **OSSemDel**: 删除不再使用的信号量。 - **OSSemPend**: 使线程等待获取信号量。 - **OSSemPendAbort**: 中止线程对信号量的等待。 - **OSSemPost**: 增加信号量计数值,可能唤醒等待的线程。 - **OSSemSet**: 直接设置信号量的计数值。 7. **计时器(Timers)** - 计时器API允许创建周期性和一次性计时器,用于实现各种定时任务,这部分未在摘要中详细列出。 这些API构成了µC/OS-III的核心功能,使得开发者能够创建高效、实时的嵌入式应用程序。通过熟练掌握这些接口,开发者可以更好地控制和管理系统的并发行为、资源分配以及时间敏感的任务调度。