软考真题
首页
题库
登录
第1题
【说明】
在某工厂的物流车间,设计一款智能监测系统,实现对车间进行24小时不间断图像采集的功能。王工设计了一个实时监测采集系统,主要由图像采集卡和数据存储卡组成。由于实时图像的数据量巨大,设计采用DMA方式进行数据传输,当DMA传输完成后,DMA控制器会发起一个硬件中断。操作系统接收到硬件中断,调用中断服务程序。
该系统的软件基于某嵌入式操作系统开发,支持中断管理、多任务调度等功能。与DMA相关的一段驱动程序示例代码如下。
【问题5.1】 (5分)
在操作系统的头文件中,有如下类型定义:
1. 该类型定义了一组什么类型的变量,简述其功能。
2. 在程序1的dma_init 函数中,应该将intConnec t函数的第二个参数转换成相应的类型,可以消除编译警告,请补充其中空
(1)
的内容。
【问题5.2】 (4分)
DMA控制器的寄存器操作序列,必须为原子操作,该程序中使用了两个信号量,一个用于进行寄存器操作系统的临界区保护,一个用于在传输函数和DMA完成中断处理程序之间同步。请根据信号量创建时的不同初始值,在程序2的dma_trans函数和程序3 dma_intHandle 函数中,补充空
(2)
、
(3)
、
(4)
、
(5)
处的内容。
【问题5.3】 (6分)
在该系统中有A、B两个应用任务同时从不同角度采集图像,都需要调用该DMA传输函数,任务A和任务B的优先级相同。该系统采用优先级抢占的调度策略。在任务A调用DMA传输函数进行DMA传输时,有时会出现函数返回值为0的情况。根据DMA 控制器的芯片手册定义,1表示正常完成,2表示传输超时,4表示奇偶校验错,所以返回值不应该为0。
王工经过认真排查后,分析该故障发生的原因是当任务A调用dma_trans函数时,会发生任务suspend的情况,此时如果任务B也调用dma_trans函数,则会发生上述故障。
1. 请给出dma_trans函数中会导致任务发生阻塞的代码行号。
2. 按照王工的分析,对全局变量的不正确操作会导致该函数的返回值错误,请给出发生错误的代码行号。
3. 王工对该程序进行了改进,将上述会导致返回值错误的代码放在某一行程序之后执行,即可解决该问题,请给出代码行号。
注意:这里的行号是指程序2中注释所标的第1行到第5行,请在第1行到第5行之中选择。
DMA方式
正确答案:
你的答案:
上一题
下一题
请先在App中激活(应用市场搜“软考真题”)
知识点:
试卷:
2018年下半年 下午试卷 案例
标签:
偶校验
中断
函数指针
芯片
硬件
校验
同步信号
整型变量
驱动程序
存储器
数据
值类型
整型
寄存器
形参
指针
运算符
CPU
函数
返回值
优先级
支持
线程
数据存储
任务调度
传输
控制器
CPT
DMA控制器
图像
NCP
编译
中断处理
嵌入式软件
嵌入式
硬件中断
数组
临界
全局变量
软件程序
类型定义
程序设计
多任务
嵌入式操作系统
数据传输
内容
服务程序
DMA方式
进程
信号
数据类型
故障
软件
操作系统
奇偶校验
信号量
OID
采集卡
语言
驱动
DMA
PTR
唯一性
功能
笔记
提交
苑壮壮
请先在App中激活(应用市场搜“软考真题”)
2023-05-26
1
答题卡
加油
计算器
纠错
草稿纸
得分:0
1
2
3
4
5
6