RTOS_函数解析
下面以表格的形式,对代码中各模块和接口的作用进行了清晰说明:
模块/功能 | API/宏 | 作用 | 说明 |
---|---|---|---|
消息队列管理 | |||
消息队列注册 | MessageRegister(num) | 创建消息队列 | 封装 FreeRTOS 的 xQueueCreate ,创建一个可存储 MessageContext 类型消息的队列,队列长度由 num 决定。 |
消息队列注销 | MessageDeregister(handle) | 删除消息队列 | 封装 FreeRTOS 的 vQueueDelete ,释放消息队列所占用的资源。 |
消息队列清空 | MessageClear(handle) | 清空消息队列 | 封装 FreeRTOS 的 xQueueReset ,将队列中的所有消息清除。 |
消息传输 | |||
消息发送 | MessageSend 、MessageSendFromISR 、MessageSendx | 发送消息到队列 | - MessageSend : 用于任务上下文发送消息。 - MessageSendFromISR : 用于中断服务例程发送消息。 - MessageSendx : 阻塞式发送,等待直到消息成功发送(不可用于 ISR)。 |
消息接收 | MessageRecv | 从队列接收消息 | 封装 FreeRTOS 的 xQueueReceive ,支持超时等待;读取到的消息会从队列中移除(即出队)。 |
内存管理 | |||
内存分配 | osPortMalloc 、osPortMallocFromEnd | 动态内存分配 | 封装内存分配函数;在调试模式下(定义 OS_MEM_DEBUG )会打印分配信息(文件名、函数名、行号)。 |
内存释放 | osPortFree | 释放动态分配的内存 | 对通过 osPortMalloc 分配的内存进行释放。 |
剩余内存查询 | osPortRemainMem | 获取系统剩余内存 | 用于监控系统当前可用内存大小。 |
任务调度与延时 | |||
任务延时 | osTaskDelay | 延时任务执行 | 封装 FreeRTOS 的延时函数,实现任务等待指定的 tick 数。 |
互斥锁同步 | |||
互斥锁创建 | osMutexCreate() | 创建互斥锁 | 封装 FreeRTOS 的 xSemaphoreCreateMutex ,用于创建互斥锁,保护共享资源。 |
互斥锁获取 | osMutexLock(mutex_id) 、osMutexLock_5ms(mutex_id) 、osMutexLock_1000ms(mutex_id) | 获取互斥锁 | 分别提供无限期等待、最多等待 5 毫秒和 1000 毫秒三种方式,保证任务对共享资源的互斥访问。 |
互斥锁释放 | osMutexUnlock(mutex_id) | 释放互斥锁 | 封装 FreeRTOS 的 xSemaphoreGive ,释放已经获取的互斥锁。 |
其他功能 | |||
堆初始化 | prvInitialiseHeap | 初始化系统堆 | 系统启动时调用,完成内存堆的初始化工作。 |
系统负载监控 | InstantMcpsFull | 读取并重置瞬时 MCPS 值 | 用于监控系统负载,读取当前 MCPS(可能代表处理器负载)并将其清零,便于后续的负载统计。 |