函数包括创建、开始、停止、重置、删除、超时处理等。
5,邮箱组件Mailbox Component(MB)
下述Nucleus PLUS进程间通信机制邮箱、队列、管道、信号量和事件组详见博文”Nucleus进程间通信(IPC)方式“。
负责管理Nucleus Plus 所有的邮箱服务,提供一种低开销的进程间通信机制。每个邮箱包含一个长度为4个32-bit字的消息。邮箱可以由用户动态创建/删除,支持任务的挂起和恢复。
每个邮箱都有一个控制块Mailbox Control Block (MCB) MB_MCB,MB通过双向链表维护已创建的邮箱。邮箱的任务挂起/唤醒支持FIFO顺序和任务优先级顺序进行,也是通过维护一个双向链表进行,每有一个任务挂起在邮箱上就会创建一个控制块MB_SUSPEND结构体。
MB提供了邮箱的创建、删除、消息发送/获取、重置、清空、广播等函数。
6 队列组件Queue Component(QM)和7管道组件Pipe Component(PI)
分别负责管理所有的Nucleus Plus 队列服务,管理所有的Nucleus Plus 管道服务。两部件的管理与MB是类似的,区别在于:队列的消息是一个或者多个32-bit字,管道的消息是一个或者多个8-bit字节。
8,信号量组件Semaphore Component(SM)
负责管理所有的Nucleus Plus 信号量服务,用于多个任务间的同步。信号量支持动态创建/删除,SM可提供的信号量计数范围是0-4,294,967,294,其管理与MB类似。
9,事件组件Event Flag Component(EV)
负责管理所有的Nucleus Plus 事件组服务,每个事件组包含32个事件标示(event flag),即32位无符号整型数的每个位即是一个event flag(为1表示事件发生,0表示未发生)。其管理与MB类似。
10,存储分配组件Partition Memory Component(PM)
负责管理所有的Nucleus Plus 分区内存,分区内存的内存池指的是由用户指定的内存总数目固定、每个分区(partition)的字节数也确定的内存。分区内存支持动态创建和任务的挂起/唤醒(FIFO或者任务优先级顺序)。
每个分区内存都需要一个控制块Partition Memory Control Block (PCB)-PM_PCB(额外占据内存,不包含在分区内存内),PM通过双向链表维护所有创建的分区内存。每个分区内存的可用分区由一个null结尾的单链表控制,每个可用分区由头结构体PM_HEADER开始。
11,动态内存组件Dynamic Memory Component(DM)
负责管理所有的Nucleus Plus 动态内存服务,动态内存池的起始位置和长度由用户指定,支持动态创建/删除和任务挂起/唤醒。动态内存的分配按照first fit算法分配,没有固定字节数的分区。DM的管理与PM类似。
12,I/O驱动组件Iinput/Output Driver Component(I/O)
负责管理所有的Nucleus Plus 输入/输出设备的驱动服务,提供了一种通用的、相似的s驱动服务接口,包括初始化、分配、释放、输入/输出、设备状态获取和服务申请终止等服务。
13,错误处理组件Error Component(ER)
负责管理所有的Nucleus Plus 系统错误。
14,历史组件History Component(HI)
负责Nucleus Plus的历史设备管理。
15,许可证组件License Component (LI)
负责Nucleus Plus的许可证管理。
16,版本控制组件Release Component(RL)
负责Nucleus Plus 的版本管理。