首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C语言代码,回答问题,将解答填入答题纸的对应栏内。 【说明】 在某工厂的物流车间,设计一款智能监测系统,实现对车间进行24小时不问断图像采集的功能。王工设计了一个实时监测采集系统,主要由图像采集卡和数据存储卡组成。由于实时图像的数据量
阅读下列说明和C语言代码,回答问题,将解答填入答题纸的对应栏内。 【说明】 在某工厂的物流车间,设计一款智能监测系统,实现对车间进行24小时不问断图像采集的功能。王工设计了一个实时监测采集系统,主要由图像采集卡和数据存储卡组成。由于实时图像的数据量
admin
2020-05-31
73
问题
阅读下列说明和C语言代码,回答问题,将解答填入答题纸的对应栏内。
【说明】
在某工厂的物流车间,设计一款智能监测系统,实现对车间进行24小时不问断图像采集的功能。王工设计了一个实时监测采集系统,主要由图像采集卡和数据存储卡组成。由于实时图像的数据量巨大,设计采用DMA方式进行数据传输,当DMA传输完成后,DMA控制器会发起一个硬件中断。操作系统接收到硬件中断,调用中断服务程序。
该系统的软件基于某嵌入式操作系统开发,支持中断管理、多任务调度等功能。与DMA相关的一段驱动程序示例代码如下。
【C语言程序声明与定义】
/*DMA控制寄存器基地址*/
#define DMA0_BASE_ADDR 0xC0021100
#define DMA1_BASE_ADDR 0xC0021180
/*DMA中断向量号*/
#define DMA0_INT_VECTOR 5
#define DMA1_INT_VECTOR 6
UINT32 Dma err ret=0;/* DMA传输状态全局变量,用于在DMA传输函数和DMA中断处理程序中传递DMA完成状态*/
SEM_ID sem_DMA1;/*互斥信号量*/
SEM_ID sem_DMA2;/*同步信号量*/
SEM_ID semBCreate(int/*排队规则*/,int/*初始值*/);/*操作系统创建信号量api*/
int semTake(int/*信号量ID*/,int/*等待时间*/); /*操作系统获取信号量api*/
int semGive(int/*信号量ID*/);/*操作系统释放信号量api*/
extern int intConnect(int/*中断向量*/,VOIDFUNCPTR/*中断服务程序*/,int/*参数*/);/*操作系统释中断连接程序api*/
【程序1】
/* DMA功能初始化*/
UINT32 dma_init()
{
/*创建互斥信号量*/
sem DMA1=semBCreate(SEM_Q_FIFO/*系统定义的排队方式*/,1);
/*创建同步信号量*/
sem DMA2=semBCreate(SEM_Q_FIFO/*系统定义的排队方式*/,0);
/*向操作系统挂接中断处理程序*/
intConnect(DMA0_INT_VECTOR,((1)________________)dma_intHandle,0);
return 0;
}
【程序2】
/*DMA传输函数
返回值1表示正常完成,2表示传输超时,4表示奇偶校验错
*/
UINT32 dma trans(UINT32 src_addr,/*DMA传输源地址*/
UINT32 dst addr,/*DMA传输目的地址*/
UINT32 length /*DMA传输长度*/
)
{
Dma_err_ret=0; //第1行
/* DMA控制寄存器的操作序列为原子操作,进入临界区*/
semTake((2)________________,WAIT_FOREVER/*系统定义的等待时间*/); //第2行
/* DMA寄存器初始化*/
/*代码略…*/
/*设置DMA传输的源地址、目的地址、长度*/
/*代码略…*/
/*启动DMA传输*/
/*代码略…*/
/*等待DMA传输完成*/
semTake((3)________________,WAIT_FOREVER/*系统定义的等待时间*/); //第3行
/*退出临界区*/
semGive((4)________________); //第4行
/*返回DMA传输完成状态*/
return(Dma_err_ret); //第5行
)
【程序3】
/*DMA中断处理程序*/
void dma_intHandle()
{
UINT32 tempReg=0;
UINT32 baseAddr=DMA0_BASE_ADDR;
/*获取DMA传输完成状态寄存器*/
tempReg=*(UINT32*)(base_addr+0x04);
*(UINT32*)(base_addr+0x04)=tempReg&0xff;
/*
*保存DMA传输完成状态到全局变量
* 1表示正常完成,2表示传输超时,4表示奇偶校验错
*/
Dma_err_ret=tempReg&0xff;
/*释放同步信号量,通知DMA传输完成*/
semGive((5)________________);
}
DMA控制器的寄存器操作序列,必须为原子操作,该程序中使用了两个信号量,一个用于进行寄存器操作系统的临界区保护,一个用于在传输函数和DMA完成中断处理程序之间同步。请根据信号量创建时的不同初始值,在程序2的dma_trans函数和程序3 dma_intHandle函数中,补充空(2)________________、(3)________________、(4)________________、(5)________________处的内容。
选项
答案
(2)sem_DMA1 (3)sem_DMA2 (4)sem_DMA1 (5)sem_DMA2
解析
多任务互斥是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。同步则是指在互斥的基础上(大多数情况),通过其他机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。
该程序中使用了两个信号量来实现同步与互斥机制,一个是互斥信号量sem DMA1,用于进行寄存器操作的临界区保护,一个是同步信号量sem DMA2,用于在传输函数和DMA完成中断处理程序之间同步。
转载请注明原文地址:https://kaotiyun.com/show/6LWZ777K
本试题收录于:
嵌入式系统设计师下午应用技术考试题库软考中级分类
0
嵌入式系统设计师下午应用技术考试
软考中级
相关试题推荐
以下关于单链表存储结构特征的叙述中,不正确的是()。
数据模型的三要素中不包括()。
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。[说明]防火墙是一种广泛应用的网络安全防御技术,它阻挡对网络的非法访问和不安全的数据传递,保护本地系统和网络免于受到安全威胁。图3—1给出了一种防火墙的体系结构。[问题1]防火
阅读下列说明,回答问题1至问题4,将解答写在答题纸的对应栏内。【说明】基于Windows32位系统分析下列代码,回答相关问题。voidChallenge(char*str){chartemp[9]={
安全电子交易协议SET是由VISA和MasterCard两大信用卡组织联合开发的电子商务安全协议。以下关于SET的叙述中,正确的是()。
依据国家信息安全等级保护相关标准,军用不对外公开的信息系统的安全等级至少应该属于()。
在信息系统安全防护体系设计中,保证“信息系统中数据不被非法修改、破坏、丢失等”是为了达到防护体系的__________________的目标。
重置的基本思想是通过(45)机制的支持,使得子类在继承父类界面定义的前提下,用适合于自己要求的实现去置换父类中相应的实现。
项目范围管理包括确保项目成功所需的全部工作过程,下列范围管理流程正确的是______。①定义范围②核实范围③收集需求④控制范围⑤创建工作分解结构
Changecontrolwithininformationtechnology(IT)systemsisaformalprocessusedtoensurethatchangestoproductorsystemare
随机试题
男性,37岁。因咳嗽、胸痛,发热3天人院,查体:P135次/分,BP125/85mmHg,T38.5℃。X线检查表现为胸腔积液。对脓胸的治疗下面哪项不妥
广义积分=().
患者,男,31岁。因突发肉眼血尿4天作膀胱镜检查,术后出现明显尿频、尿急、尿痛,伴发热39.8℃和腰痛,如做清洁中段尿细菌培养,最可能为以下细菌感染的是
A.血小板数量减少B.多种凝血因子消耗性减少C.遗传性凝血因子缺乏D.血管壁功能异常E.多种凝血因子合成障碍肝功能不全出血原因
测量犬猫体温的主要部位是
根据《中华人民共和国耕地占用税暂行条例》的规定,当建设占用()时,需征收耕地占用税。
根据《中华人民共和国电力法》的规定,申请新装用电、临时用电、()、变更用电和终止用电,应当依照规定的程序办理手续。
《中华人民共和国行政处罚法》规定的行政处罚种类不包括()。
在某企业承建的一个信息系统集成项目中,建设方注重交付时间和质量,承建方公司老总注重项目利润,质量监控部经理注重项目的质量,人力资源部经理注重项目人力使用效率。下列围绕项目干系人管理的叙述错误的是(220)。
为了判别LOCATE或CONTINUE命令是否找到了满足条件的记录,可以使用函数______。
最新回复
(
0
)