首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说兑明和图、表,回答下列问题,将解答填入答题纸的对应栏内。 【说明】 某车载导航系统的结构如图1一1所示,由导航处理系统和显示系统两部分组成。导航处理系统安装在某型车的设备区,显示系统安装在某型车的前方,便于驾驶员观看和操作。
阅读下列说兑明和图、表,回答下列问题,将解答填入答题纸的对应栏内。 【说明】 某车载导航系统的结构如图1一1所示,由导航处理系统和显示系统两部分组成。导航处理系统安装在某型车的设备区,显示系统安装在某型车的前方,便于驾驶员观看和操作。
admin
2013-01-19
87
问题
阅读下列说兑明和图、表,回答下列问题,将解答填入答题纸的对应栏内。
【说明】
某车载导航系统的结构如图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://www.kaotiyun.com/show/OhWZ777K
本试题收录于:
嵌入式系统设计师下午应用技术考试题库软考中级分类
0
嵌入式系统设计师下午应用技术考试
软考中级
相关试题推荐
在数据库事务的四种隔离级别中,不能避免脏读的是(52)________________。
假设某企业信息管理系统中的5个实体:部门(部门号,部门名,主管,电话),员工(员工号,姓名,岗位号,电话),项目(项目号,名称,负责人),岗位(岗位号,基本工资),亲属(员工号,与员工关系,亲属姓名,联系方式)。该企业有若干个部门,每个部门有若干名员工;每
若系统正在将(20)________________文件修改的结果写回磁盘时系统发生崩溃,则对系统的影响相对较大。
对有n个结点、e条边且采用数组表示法(即邻接矩阵存储)的无向图进行深度优先遍历,时间复杂度为(10)________________。
在索引改进中,一般的调整原则是:当(62)是性能瓶颈时,则在关系上建立索引;当(63)是性能瓶颈时,则考虑删除某些索引;管理人员经常会将有利于大多数据查询的所以设为(64)。(63)
(16)是构成我国保护计算机软件著作权的两个基本法律文件。单个自然人的软件著作权保护期为(17)。(16)
并发操作可能带来的数据不一致性有(52),解决的办法是并发控制,主要技术是(53)。(53)
函数调用和返回控制是用()实现的。
用于提交和回滚事务的语句为()。
随机试题
罗杰斯认为教师是【】
女性,27岁。劳累后心悸、气短5年,近一周间断咯血,无发热。查体:双颊紫红,口唇轻度发绀,颈静脉无怒张。两肺未闻干、湿啰音。心浊音界在胸骨左缘第三肋间向左扩大,心尖部局限性舒张期隆隆样杂音,第一心音亢进。肝脏不肿大,下肢无水肿。本病最易发生的心律失常是
中药最本质的特点是
危险度是指
口疮,心脾积热证可选用的中成药有()。
竞争性谈判,或称议标,是客户通过谈判选择咨向公司的方式。其适用条件与两阶段招标、征求建议书基本相同,也就是说,凡适用两阶段招标和征求建议书的招标均可通过竞争性谈判进行。但是,在以下()的情况下采用竞争性谈判最为适宜。
建筑工程施工质量验收中,检验批质量验收的内容包括()。
简述福禄贝尔的教育思想。
认知策略是学习者加工信息的一些方法和技术,通常包括()。
下列表达式计算结果为日期类型的是
最新回复
(
0
)