首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说兑明和图、表,回答下列问题,将解答填入答题纸的对应栏内。 【说明】 某车载导航系统的结构如图1一1所示,由导航处理系统和显示系统两部分组成。导航处理系统安装在某型车的设备区,显示系统安装在某型车的前方,便于驾驶员观看和操作。
阅读下列说兑明和图、表,回答下列问题,将解答填入答题纸的对应栏内。 【说明】 某车载导航系统的结构如图1一1所示,由导航处理系统和显示系统两部分组成。导航处理系统安装在某型车的设备区,显示系统安装在某型车的前方,便于驾驶员观看和操作。
admin
2013-01-19
45
问题
阅读下列说兑明和图、表,回答下列问题,将解答填入答题纸的对应栏内。
【说明】
某车载导航系统的结构如图1一1所示,由导航处理系统和显示系统两部分组成。导航处理系统安装在某型车的设备区,显示系统安装在某型车的前方,便于驾驶员观看和操作。
导航处理系统由主处理机模块、电子盘模块、信号处理模块和电源模块组成,主处理机模块执行电了地图功能、导航控制功能等,生成的导航显示画面通过信号线在LCD液晶彩色显示屏显示给驾驶员;信号处理模块处理外部采集数据,将处理后的数据通过内部总线传输给主处理机模块;电子盘模块存储电子地图数据及导航数据。
显示系统由LCD液晶彩色显示屏、面板键盘(门定义键盘)和电源模块组成,主要是显示导航画面,也可通过面板键盘进行导航控制。
主处理机模块与信号处理模块间通过双端口存储器进行数据交换。李工设计时,将双端口存储器空间划分为两个缓冲区,两个缓冲区分别交替地接收信号处理机传输来的最新数据,然后按数据块方式提供给用户程序使用。
假设每个缓冲区的大小为512 KB,将512 KB数据写入当前空闲缓冲区接口服务为Write Buffer,将当前有效的512 KB数据读出缓冲区的接口服务为Read Buffer,假设双端口存储器中不提供硬件信号量,两个缓冲区间的互斥操作由软件标记实现,软件对双端口存储器的单次操作(读写一个字的操作)为原子操作。
下面是用C语言设计的一组对双缓冲区的管理程序代码,请填补该程序代码中的空缺,将答案填写在答题纸上。
int*BufferFlag[2]; /*0表示无有效数据,0xff表示有新数据 */
int*Mutex[2]; /*软件锁,0表示末锁定,0xff表示锁定 */
int Read_Buffer(int id,char *data); /* 从缓冲区读数据,用于数据处理模块,id表示缓冲的序列号,0表示缓冲区1,1表示缓冲区2,data为存放读取数据的缓冲,返回值表示读取到有效数据的长度*/
void write_Buffer(int id,char *data); /* 向缓冲区写数据,用于信号处理模块,id表示缓冲的序列号,0表示缓冲区1,1表示缓冲区2,data为待写入数据的缓冲*/
int INIT_PPC(){/*数据处理模块端的初始化,缓冲区起始地址为0xffffc000。*/
BufferFlag=(int*)0xffffc000;
Mutex= (int*)0xffffc010;
*BufferFlag[0]=0;
*BufferFlag[1]=0;
*Mutex[0]=0;
*Mutex[1]=0;
return(0);
}
int PPC_Read_Data(char*Data)( /* 数据处理模块读数据程序段*/
int len=0;
if((!(*BufferFlag[0]))&&(!(*BufferFlag[1]))){
return(0); /*无新数据*/
}
if(*BufferFlag[0]){
if (
(1)
){
*Mutex[0]=0xff;
len=Read Buffer(0,Data);
*BufferFlag[0]=0x00;
(2)
;
}
}
else{
if(*BufferFlag[1]){
if(!(*Mutex[1])) {
*Mutex[1]=0xff;
(3)
;
*BufferFlag[1]=0x00;
*Mutex[1]=0x00;
}
}
}
return(len);
}
int DSP_Write_Data() {
/*信号处理模块鸯数据程序段,初始化与数据处理模块端类似,同样以BufferFlag表示与数据处理模块端的对应的标志,即两端操作的是相同的地址空间; 同样Mutex也表示与数据处理模块端的对应的软件锁,即两端操作的是相同的地址空间。这里就略去双口在DSP上的起始地址说明和初始化部分。*/
char Data[1024*512];
while(1) {
//等待信号处理模块产生新的数据并存入数据缓冲Data中;
if (!(*Mutex[0])) {
*Mutex[0]=0xff;
Write_Buffer(0, Data);
*BufferFlag[0]=0xff;
*Mutex[0]=0x00;
}
else if (!(*Mutex[1])) {
*Mutex[1]=0xff;
Write_Buffer(1, Data);
*BufferFlag[1]=0xff;
*Mutex[1]=0x00;
}
}
renurn(0);
}
选项
答案
(1)!(*Mutex[0])或者*Mutex[0]==0x00或者*Mutex[0]==0 (2)*Mutex[0]=0x00或者*Mutex[0]=0 (3)len=Read Buffert(1,Data)
解析
本题考查嵌入式系统中的C程序设计,要求考生正确使用软件锁。
在本题中主处理机模块与信号处理模块间通过双端口存储器进行数据交换。由信号处理模块发送数据,主处理机模块接收数据。
在本题中给出了很多假设条件,如将双端口存储器空间划分为两个缓冲区,两个缓冲区分别交替地接收信号处理机传输来的最新数据;再如假设双端口存储器中不提供硬件信号量,两个缓冲区间的互斥操作由软件标记实现,软件对双端口存储器的单次操作(读写一个字的操作)为原了操作。同时本题也给出了软件程序的架构,BufferFlag为缓冲区有无新数据的标志,Mutex为软件锁。
在数据处理模块端的初始化程序INIT PPC()中,、BufferFlag和Mutex被分配在缓冲区的前端,并被初始化为无数据和未锁定。
信号处理模块写数据程序DSP_Write_Data()中,初始化与数据处理模块端类似,同样以BufferFlag表示与数据处理模块端的对应的标志,即两端操作的是相同的地址空间;同样.Mutex也表示与数据处理模块端的对应的软件锁,即两端操作的是相同的地址空间。信号处理模块写数据程序DSP_Write_Data()是一个无限循环程序,在等待信号处理模块产生新的数据,之后就将数据写入双缓冲Data中。具体过程如下:
1)循环等待新数据;
2)如果缓冲区0未被锁定,则:
(1)缓冲区0加锁;
(2)写数据到缓冲区0;
(3)标记缓冲区0未有数据:
(4)缓冲区0解锁。
3)如果缓冲区0已被锁定,则对缓冲区1重复上述步骤。
在数据处理模块端读数据程序PPC_Read_Data()首先判断双缓冲有无数据,如果缓冲区0有数据,再判断缓冲区0是否加锁,如果未加锁,则先加锁,再读数据,再解锁。对缓冲区1同样如此处理。
转载请注明原文地址:https://jikaoti.com/ti/YOI7FFFM
本试题收录于:
嵌入式系统设计师下午应用技术考试题库软考中级分类
0
嵌入式系统设计师下午应用技术考试
软考中级
相关试题推荐
下图所示的扩展E—R图中,属性“电话”属于(62)________________,在逻辑结构设计中,该图中的(63)________________属性将不会被转换到关系模式中。
某软件项目的活动图如下图所示,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示活动的持续天数,则完成该项目的最少时间为(27)________________天。活动EH和IJ的松弛时间分别为(28)________________天。
I/0设备管理软件一般分为4个层次,如下图所示。图中①②③分别对应(21)________________。
(16)是构成我国保护计算机软件著作权的两个基本法律文件。单个自然人的软件著作权保护期为(17)。(17)
某系统由3个部件构成,每个部件的千小时可靠度都为R,该系统的千小时可靠度为(1-(1-R)2)R,则该系统的构成方式是()。
以下关于单链表存储结构特征的叙述中,不正确的是()。
设备驱动程序是直接与()打交道的软件模块。
以下关于系统原型的叙述中,不正确的是()。
对分组查询结果讲行筛选的是(),其条件表达式中可以使用聚集函数。
随机试题
过冷奥氏体高温转变(在A1~550℃)的产物是()体。
A.双目镜筒中的左右两光束不平行B.不可选用复消色差物镜C.光源是紫外光D.光源是红外光E.物镜、聚光镜和光源颠倒放置体视显微镜
引起慢性阻塞性肺疾病(COPD)肺动脉高压最重要的原因是()
下列属于经理人对于股东的“内部人控制”问题表现形式的有()。
注册会计师负责对甲公司20×8年度财务报表进行审阅。在审阅过程中,注册会计师遇到下列事项,请代数做出正确的专业判断。下列各项中,注册会计师为形成审阅结论通常实施的程序有()。
通常中央处理器(CPU)和主存储器合称()。
在一定条件下进行的可逆反应:2NH3(g)N2(g)+3H2(g),下列数据能表示反应处于平衡状态的是()。
高薪技术主要特征包括()。
一位教育工作者撰文表达了她对电子游戏给青少年带来的危害的焦虑之情。她认为电子游戏就像一头怪兽,贪婪、无情地剥夺青少年的学习和与社会交流的时间。以下哪项不成为支持以上观点的理由?
下面属于白盒测试方法的是
最新回复
(
0
)