网关软件工程师基础知识试题docWord格式.docx
- 文档编号:14828089
- 上传时间:2022-10-25
- 格式:DOCX
- 页数:35
- 大小:160.17KB
网关软件工程师基础知识试题docWord格式.docx
《网关软件工程师基础知识试题docWord格式.docx》由会员分享,可在线阅读,更多相关《网关软件工程师基础知识试题docWord格式.docx(35页珍藏版)》请在冰豆网上搜索。
(5)内核需要支持中断,抢占和多核,盂要时刻注意同步和并发;
(6)使用浮点数很容易出现异常,应尽最少用或者不用;
(7)程序在不同的地址空间执行。
此题为开放题,其它答案合理亦可。
3.简述屮断级联与屮断共享有何异同?
并画出硬件连接示意图。
相同点:
都是在同一个中断控制器的引脚上接多个设备。
不同点:
中断级联是在中断控制器的引脚上再接一个中断控制器,设备具有不同的中断号;
中断共享则是中断控制器的引脚上直接并联多个设备,设备具有相同的中断号。
0:
设备
4.写一个宏SWAP(x,y),实现交换所有基本数据类型的值;
写一个宏计算数组元素的个数。
(1)#defineSWAP(x,y)do{\
—typeof(x)t=x;
x=y;
y=x;
\
}while(0)
或者
#defineSWAP(x,y)do{\
xA=y;
yA=x;
\}while(0)
(2)#defineARRAY_SIZE(a)(sizeof(a)/sizeof(a[0]))
5.volatile关键字的作用。
(1)修饰语句块时,防止指令顺序被改变;
(2)修饰变屋吋,防止读写指令被优化。
6.全局变量:
staticconstinta;
staticintb;
staticconstintc=5;
(1)
intmain()
{
printff^b=%d\n"
b);
rctum0;
}
执行结果是什么,为什么?
(2)voidfund(void)
intp=(int*)&
a:
*p=8;
b=1;
printf(ua=%db=%d\n"
a,b);
voidfunc2(void)
staticconstintd;
int*p=(int*)&
d;
funcl(),func2()执行的结果是什么?
(1)b=0。
b被分配到bss段。
(2)fund()编译出错;
func2():
d=6
7.用C语言实现将地址为()xB8100()01的32位寄存器置为0x12345678。
答案:
32位寄存器的地址都以4字节对齐,不会出现地址0xB8100001o
&
写一个讦语旬判断一个32位整数能否表示为2的某次方(不能用循环)。
inta=8;
if(a&
(—I)==())
yes;
else
no;
9.在32位系统中,
structA
chara;
intb;
shortc;
chard;
void*e;
};
#pragmapack(l)
structB
#pragmapack()
#pragmapack(4)
structC
}:
#pnigmapack()
请sizeof(structA),sizeof(structB),sizeof(structC)的值。
sizeof(structA)=16
sizeof(structB)=12
sizeof(structC)=16
10.SPI总线有CLK,MOST,MISO,CS四根线。
在SLAVE已经片选上的情况下,假设读SLAVEID需要向SLAVE发送一个字节的命令,SLAVEID为四个字节。
请问读SLAVEIDMOSI,MISO分别传输了多少字节的数据。
都是5
11.请简述u-boot从NandFlash,NorFlash和SPIFlash启动的流程。
Nand:
上电,CPU通过SoC上固化的程序,将u-boot前4K或者8K加载到SRAM中,并跳转到SRAM中执行。
初始化内存,Nand等设备Z后,将整个u-boot加载到内存后,并跳转到u-boot加载地址处执行。
NorFlash:
CPU将NorFlash映射到地址空间上,CPU跳到NorElash映射到的某一地址处执行,初始化内存等设备之示,将整个u-boot加载到内存示,并跳转到u-boot加载地址处执行。
SPI:
CPU通过SoC上固化的程序,将一小段特定大小的程序加载到SRAM'
p,并跳转到SRAM中执行。
初始化内存,SPT等设备Z后,将整个u-boot加载到内存后,并跳转到u-boot加载地址处执行。
12.MIPS架构上,memory分为四块,各是什么?
有何区别?
kuseg:
0x0000000-0x7FFFFFFF(低端2G):
这些地址是用户态可用的地址。
在有MMU的机器里,这些地址将一概被MMU作转换。
除非MMI;
的设置被建立好,这2G地址是不可用的。
对于没有MMU的机器,存取这2G地址的操作与具体机器相关。
CPU具体厂商提供的手册将会提供关于这方面的信息。
kscgO:
0x80000000-0x9FFFFFFF(512M):
这些地址映射到物理地址简单的通过把最高位清零,然后把它们映射到物理地址低段512M(0x00000000-OxlFFFFFFF)。
儿乎全部的对这段地址的存取都会通过快速缓存(cache)o因此在cache设置好之前,不能随便使用这段地址。
ksegl:
0xA0000000-OxBFFFFFFF(512M):
这些地址通过把最高3位清零的方法來映射到相应的物理地址上,与kscgO映射的物理地址一样。
但ksegl是非cache存取的。
ksegl是唯一的在系统重启吋能正常工作的地址空间。
kseg2:
0xC0000000-OxFFFFFFFF(1G):
这段地址空间只能在核心态下使用并且要经过MMU的转换。
在MMI•设进好之前,不能存取这段区域。
13.MIPS架构上,如果从NotFlash启动,默认的启动物理地址是多少?
可否设置其它地址作为启动地址?
如果能请简要设置方法,如果不能请说明原因。
OxBFCOOOOO,可否设置启动地址需要看具体芯片是否提供修改启动地址的功能。
如果芯片有修改启动地址的功能,在启动前,通过修改硬件,改变上电后跳线的电压來改变启动地址。
14.在linuxkernel中,—init/_exit,—devinit/_devexit的作用是什么?
两组有何区别?
编译时,把他们修饰的函数放到各口的口定义段中。
_init/_exit的函数被执行过Z后会被释放。
而_devinit/_devexit函数被执行过之后不会被释放。
15.请完成函数get_key,根据NODE成员list的地址,返回NODE成员key的值。
比如下面的例了运行后会打卬“100”。
(提示:
请注意构成链表的方式)
structlist_head
structlist_head*next,*prev;
typedefstruct{
intkey;
structlist_headlist;
}NODE;
#definecontainer(ptrztype,member)\
(type*)((char*)ptr-(char*)(&
((type*)0)->
member))
intget_key(structlist_head*plist)
NODE*node;
node=container_of(plist,NODE,list);
returnnode->
key;
intmain()
NODEnode={.key=100z.list={&
node•丄ist,&
node•丄ist}};
printf(吒d\n"
get_key(&
node.list));
return0;
)
16.用C语言实现set_reg_bits(・・j和set_reg_bit(•••),参数自定。
setregbits功能:
将地址为addr的register的bitm到bitn(m<
=n)设置为value(0<
=value<
2n"
+1);
set_reg_bit功能:
将地址为addr的register的bitm设置为value(value:
0,1)。
staticvoidinlinesetregbits(u32reg,intfrom,intto,ul6bit_val)
ul6val;
val=readw((void*)reg);
val&
=~(((1«
(to一from+1))-1)«
from);
val|=bitval<
<
from;
writew(val,(void*)reg);
#defineset_reg_bit(reg,bit,val)set_reg_bits(reg,bit,bit,val)
17.GCC编译器在编译时都有哪几个过程。
预编译,编译,汇编,链接。
18.描述LINUX小字符设备驱动的基本编成框架。
并编写一个编译它的Makefile,说明其小的参数。
要点、:
module_init,module_exit,字符设备注册,file_operation,open(),read(),write(),ioctl(),release()^o
Makefile:
KERNELPATH=/xxx/xxx
PWD=$(shellpwd)
all:
make-C$(KERNEL_PATH)-M$(PWD)modules
clean:
make-C$(KERNEL_PATH)-M$(PWD)clean
19.在bootloader中,冇时需要跳到指定的地址上执行。
请用C语言实现跳到地址0x80000000处执行。
((void(*)(void))0x800()0()00)();
typedefvoid(*func_t)(void);
fun
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网关 软件工程师 基础知识 试题 doc