说明EMA、NOD、DRV、DTM电路板的名称
第1题:
阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。
【说明】
在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4个不同设备驱动程序,但没有用到函数指针变量。
【C语言代码】
/*变量与类型说明*/
include "stdio.h"
include "stdlib.h"
extern int sys_status;
extern int Dev_drv1(int arg1, int arg2);
extern int Dev_drv2(int arg1, int arg2);
extern int Dev_drv3(int arg1, int arg2);
extern int Dev_drv4(int arg1, iht arg2);
define NOERROR 0
type struct {
int _fd;
} TYP_DEV_TAB;
TYP DEV_TAB dev_tab[50]= {101,99, 80, 120,};
/*程序代码*/
void manage_device(int devid, int arg1, int arg2)
{ int place ;
int ret;
for(place=0 ; place<50 ; place++)
if dev_tab [place]. fd == devid) break;
if(place>=50)
printf(" NO DEVICE fd = %d\n ",devid);
switch(dev_tab [place]._fd) {
case 80:
ret = Dev_drv3(int arg1,int arg2);
break;
case 99:
ret = Dev_drv2(int arg1,int arg2);
break;
case 101:
ret = Dev_drv1(int arg1,int arg2);
break;
case 120:
ret = Dev_drv4(int arg1,int arg2);
break;
}
if (ret!=NOERROR)
printf(" DEVICE %d error!\n ", devid);
}
int Dev_drv1(int arg1,int arg2)
{
/*局部变量声明,略*/
/*驱动程序代码,略*/
}
int Dev_drv2(int arg1,int arg2)
{
/*局部变量声明,略*/
/*驱动程序代码,略*/
}
int Dev_drv3(int arg1,int arg2)
{
/*局部变量声明,略*/
/*驱动程序代码,略*/
}
int Dev_drv4(int arg1,int arg2)
{
/*局部变量声明,略*/
/*驱动程序代码,略*/
请用C语言的函数指针变量,对manage_device函数进行改造,完成下面C语言代码中的(1)、(2)、(3)和(4)处的变量说明或语句,将解答填入对应栏内。
【C语言代码】
/*变量与类型说明*/
include "stdio.h"
include "stdlib.h"
extern int sys_status;
extern int Dev_drv1(int arg1, int arg2);
extern int Dev_drv2(int arg1, iht arg2);
extern int Dev_drv3(int arg1, int arg2);
extern int Dev_drv4(int arg1, int arg2);
define NOERROR 0
typedef struct {
int _fd;
(1) 函数指针变量说明;/* 变量名用process */
} TYP_DEV_TAB;
TYP_DEV_TAB dev_tab[50]= {{101, Dev_drv1},{99, Dev_drv2},
{80, Dev_drv3},{120, Dev_dry4},};
/* 程序 */
void manage_device(int devid, int arg1, int arg2)
{ iht place ;
int ret;
(2) 函数指针变量说明;/*局部变量,变量名用ProcAction */
for(place=0 ; place<50 ; place++) {
if(dev_tab [place]._fd == devid) {
(3) 语句1;/* 变量名胜ProcAction, 得到具体函数的入口地址 */
break;
}
}
if(place>=50)
printf("NO DEVICE fd = %d\n",devid);
(4) 语句2;
if(ret!=NOERROR)
printf("DEVICE %d error!", devid);
}
第2题:
A.DTM板
B.DRV板
C.拨码开关
D.传输
第3题:
一个NOD板4个主节点,一框用户占()个主节点,来自()块NOD板。
第4题:
DTM-452C在输入点名称或编号时最多可输入多少个字符()
第5题:
有以下说明语句:struct Worker{int no;char name[20];};Worker w,*p=&w;则下列错误的引用是()
第6题:
模块内交换的话音通路:ASL——DRV——()——DRV——ASL
第7题:
说明当遇有哪些情况时,应停止DTM350/600型磨煤机运行?
第8题:
DRV板的作用有()。
第9题:
DTM
第10题:
多模BSC的BM模块,NOD板、透传BIE板配置规则,以下描述哪些是正确的?()
第11题:
说明当遇有哪种情况时应紧急停止DTM350/600型磨煤机运行?
第12题:
w.no
p->no
(*p).no
*p.no
第13题:
说明()特征的名称叫标志,说明()特征的名称叫指标。
第14题:
解释DRV板的分工互助?DRV板有多少个DTMF收号器?
第15题:
某局DXC(版本为1.0)现配置1架LPDU,共128条64K链路,60个E1,DTM:NOD=2:1,有HWC。试计算如果此DXC只扩容LPDT(DXC2.0),最大可以扩容的64K链路数。扩容部分每两框LPDT共用两个NOD,DIU框和LPDT框的NOD配置要考虑互助原则。请写出计算过程。
第16题:
中心汇接局DTM板在数据设置中共设成那几种用法,并举例说明使用在哪些中继上?
第17题:
一个中继框满配置可以插()块DTM板,一个DTM有60路中继。
第18题:
时钟问题可能与哪些有关()
第19题:
以下哪些不是SM模块中的单板()
第20题:
32模交换机中每块DTM板占用()条HW,()个NOD节点,一个32路用户框一般占用()条HW,()个NOD节点。
第21题:
关于集中收号框中的DRV板,下面说法正确的是()
第22题:
说明DTM350/600型球磨机的启动操作步骤?
第23题: