14.2. 通用通信通道共享内存区域
表 14.9 通用通信通道共享内存区域
| 字段 | 字节长度 | 字节偏移量 | 描述 |
|---|---|---|---|
| 签名 | 4 | 0 | PCC 签名。子空间的签名通过将值 0x50434300 与子空间 ID 按位或计算得到。例如,子空间 3 的签名为 0x50434303。 |
| 命令 | 2 | 4 | PCC 命令字段,见通用通信通道命令字段。 |
| 状态 | 2 | 6 | PCC 状态字段,见通用通信通道状态字段。 |
| 通信空间 | – | 8 | 用于读取/写入 PCC 数据的内存区域。该区域的大小比共享内存区域的大小小 8 字节(在通用通信子空间结构中指定)。该字段的第一个字节表示 PCC 地址 0。 |
14.2.1. 通用通信通道命令字段
对于类型 0 到 2 的通道,此 16 位字段用于选择由平台执行的已定义命令之一。OSPM 负责在每次调用命令之前填充该字段。
表 14.10 通用通信通道命令字段
| 字段 | 位长度 | 位偏移量 | 描述 |
|---|---|---|---|
| 命令 | 8 | 0 | 要执行的命令代码。命令代码是应用特定的,由此接口的使用者定义。 |
| Reserved | 7 | 8 | 保留。 |
| 完成时通知 | 1 | 15 | 如果置位,则平台应在该命令完成时生成门铃中断。对于类型 0 子空间结构,该中断是 SCI;对于类型 1 和类型 2 子空间结构,该中断如门铃中断字段所述。如果 PCC 全局标志中未设置门铃位,则必须清除此位。 |
14.2.2. 通用通信通道状态字段
表 14.11 通用通信通道状态字段
| 字段 | 位长度 | 位偏移量 | 描述 |
|---|---|---|---|
| 命令完成 | 1 | 0 | 如果置位,则平台已完成对上一条命令的处理。 |
| 平台中断 | 1 | 1 | 如果置位,则平台已向此子空间发出平台中断。OSPM 必须检查命令完成和平台通知字段以确定该中断的原因。 |
| 错误 | 1 | 2 | 如果置位,则执行上一条命令时发生错误。 |
| 平台通知 | 1 | 3 | 如果置位,则表示平台正在向 OSPM 发出异步通知。 |
| Reserved | 12 | 4 | 保留。 |
注意
要求 OSPM(无论是在中断处理程序中还是通过轮询)检测到命令完成位已置位,并在发出另一条命令之前将其清除。在等待此位置位期间,OSPM 不得修改共享内存区域的任何部分。
注意
必须在 OSPM 的中断处理程序中清除平台中断位,以便能够检测到新的事件。