阅读下列说明,回答问题,将答案填入对应栏内。 【说明】 某直升机的显示控制计算机是其座舱显控系统的核心部件,将来自飞行员的参数和控制命令与载机的飞行参数信息进行融合处理后,在显示器上显示。该显示控制计算机由一个显示控制单元和一个输入输出单元组成,它们之间通

admin2018-11-21  40

问题 阅读下列说明,回答问题,将答案填入对应栏内。
【说明】
某直升机的显示控制计算机是其座舱显控系统的核心部件,将来自飞行员的参数和控制命令与载机的飞行参数信息进行融合处理后,在显示器上显示。该显示控制计算机由一个显示控制单元和一个输入输出单元组成,它们之间通过双口RAM进行数据交换,如图4-1所示。
110
    显示控制单元采用Freescale公司的PowerPC8270高性能、低功耗32位处理器,并设计有系统FLASH存储器、用户FLASH存储器、SDRAM存储器。CPU内部集成存储器控制器,提供地址译码、数据处理周期访问时序、SDRAM时钟等功能。
    输入输出单元采用Ti公司的DSP F2812高性能、低功耗16位处理器,采用ARINC429总线用于接收导航计算机、大气数据计算机等外部设备的数据。ARINC429解算程序严格遵循ARINC429规范,其通用字格式如表4-1所示,字长32Bit,不用的数据位填“0”。当接收到ARINC429数据后,首先判断状态位,只有在状态和标号正确的情况下,才进一步根据分辨率等进行解算数据的含义。
111
显示控制单元和输入输出单元通过双口交换信息,两个处理器上的软件采用相同定义的结构体来定义双口单元,方便交换信息。以下是双口结构体定义:
typedef  struct
{
char ctrlword;     /*通道工作方式控制字*/
char head;         /*FIFO控制头指针*/
char tail;         /*FIFO控制尾指针*/
short fifo[32];     /*FIFO缓冲区*/
}SPM_CHAN_RX429;    /*ARINC429接收通道定义*/
为了避免由于不同的编译环境对上述数据结构产生不同的编译结果,建议对上述数据结构通过设置紧缩属性(packed属性),强迫编译器采用字节对齐方式,在该模式下,SPM_CHAN_RX429结构体占用(1)字节的存储空间。
    AiRINC429接收通道设计为由一个首尾相连的FIFO数组形成的环形队列。输入输出单元根据头指针向环形队列写入数据,头指针始终指向下一个要写入的位置,并且限制写入数据最多为31个,即队尾与队首之间至少保留一个元素的空间。
    显示控制单元根据尾指针从环形队列读取数据,尾指针始终指向下一个要读取的位置。初始化环形队列的C语言为:
SPM_CHAN_RX429 *pBuf;
pBuf=(SPM_CHAN_Rx429*)ADDR_DRAM_PPC;    /*双口地址的宏定义*/
pBuf->ctrlWord=0;
pBuf->>head=0;
pBuf->tail=0;
判断队列为空的C语言为(2)
判断队列为满的C语言为(3)
请完成(1)~(3)填空,并将答案填写在对应栏中。

选项

答案(1)67 (2)pBuf->head==pBuf->tail (3)pBuf->tail==(pBuf->head+1)%32

解析 在C语言中,结构体(struct)是一种聚合数据类型(aggregate data type)。根据不同编译器以及编译选项的属性,系统为它分配的存储空间会有所不同,在存储该结构体时会按照不同的内存对齐规则进行相关处理。本题中为了避免由于不同的编译环境对数据结构产生不同的编译结果,采用了紧缩属性强迫编译器按照字节对齐方式,在该模式下,SPM_CHAN_RX429结构体占用的存储空间为1+1+1+32*2=67。
    环形队列是在工程应用中使用极为广泛的数据结构,它是一个首尾相连的FIFO的数据结构,具有较多优点:数据组织简单,能很快知道队列是否满为空;能以很快速度的来存取数据。因为有简单高效的原因,甚至在硬件都实现了环形队列。内存上没有环形的结构,因此环形队列实际上是用数组的线性空间来实现。并将数组元素fifo[0]与fifo[MAXN一1]连接,形成一个存放队列的环形空间。为了方便读写,还要用数组下标来指明队列的读写位置,定义Head/tail两个变量,分别指向可以读的位置和可以写的位置。
    环形队列的关键是判断队列为空还是为满。本题中限制写入数据最多为31个,即队尾与队首之间至少保留一个元素的空间,即当读写指针相同时,表示队列为空,当写指针+1等于读指针时,表示队列为满。
    实际使用中,还要考虑当数据到了尾部如何处理,它将转回到0位置来,通过数组下标索引取模操作(Index%MAXN)来实现的。
转载请注明原文地址:https://jikaoti.com/ti/R6I7FFFM
0

最新回复(0)