嵌入式软件开发——嵌入式软件工程师笔试题

今天笔试一家 IC 公司!投的职位是嵌入式软件开发,做了下笔试!做个记录!

1、在 Ubuntu 系统中,手动配置IP、子网掩码和网关!

答:设置IP和子网掩码:sudo ifconfig eth0 133.133.133.190 netmask 255.255.255.0 

设置网关:   sudo route add default gw 133.133.133.40 


2、ABI 和 ELF 英文的全称,ELF 怎么转换成 .bin 文件。

答:Application Binary Interface--应用二进制接口。

描述了应用程序和操作系统之间,一个应用和它的库之间,或者应用的组成部分之间的低接口

Executable and Linkable Format -- 可执行与可链接格式

是UNIX系统实验室作为应用程序二进制接口(Application Binary Interface,ABI)而开发和发布的,也是Linux的主要可执行文件格式。


通过objcpy可以把elf文件转换为bin文件。


3、描述modprobe 和 insmod 。

答:linux设备驱动有两种加载方式insmod和modprobe,用法上的区别:

1、insmod一次只能加载特定的一个设备驱动,且需要驱动的具体地址。写法为:
insmod drv.ko
2. modprobe则可以一次将有依赖关系的驱动全部加载到内核。不加驱动的具体地址,但需要在安装文件系统时是按照make modues_install的方式安装驱动模块的。驱动被安装在/lib/modules/$(uname -r)/...下。写法为:
modprob drv
------
modprobe 和insmod一样都是用来加载内核module的
不过modprobe比较智能,它可以根据module的依赖性来自动为你加载;
而insmod就做不到这点。


4、采用44.1KHz的采样率,16位,采样时间为5分钟,求生存wav格式的大小。

答:WAV文件所占容量=(采样频率×采样位数×声道)×时间/8(1字节=8bit)。


5、创建一个32M 大小的ramdisk!

答: # dd if=/dev/zero of=ramdisk bs=1M count=32

 32+0 records in
 32+0 records out
 33554432 bytes (34 MB) copied, 0.243921 s, 138 MB/s


6、写一个程序,读入一个文件,判定文件中 字母 a 的个数!

#include 
#include 

void main()
{
	char ch;
	int num=0;
	FILE *fp;

	 if((fp=fopen("d:\\123.txt","r"))==NULL) /* 打开一个文件*/
	 {
			printf("not open");
			exit(0);
	 }

	 while ((ch=fgetc(fp))!=EOF)  
	 {
		if(ch =='a')
	    num++;
	  } 

	 printf("%d\n",num);
	 fclose(fp);
}


你可能感兴趣的:(求职面试【基础知识】)