VIA深圳linux驱动软件工程师面试试题
1. 大端与小端的定义及0x12345678在内存中的存放顺序;
2. 去掉字符串前面的空格的lib函数的实现;(如:原串为 " helloworld",输出为"helloworld")
3. char * p = malloc(5);
strcpy(p,"hello");
free(p); 请问以上程序有没有问题?但是为什么其在长时间运行并没有出现问题,原因是什么?
4. char a[]={0,1,2,3};
int *ptr = (int *)(&a+1);
ptr --;
printf("%d",*ptr);
输出结果是:
5. char *p="hello world";
int *ptr = (int *)p;
ptr ++;
*ptr =0;
printf("%d",sizeof(*p));
输出结果是多少;
6. 16bit 的short int 数据中从高到低位依次存放RGB,R占15-11位,G占10-5位,B占4-0位,请完成取六位G的函数 unsigned
char getGreenData(unsignedshort
color);
7.
nand flash bad block存在哪个块?slc 与mlc有什么区别?
8.i2c总线的读写流程;
9. spi有哪几种模式?各对应什么样的操作?
10. down(semphone); down_trylock(semphone) ;down_interrupttable(semphone)的异同。
11. linux poll_wait()会进入阻塞吗?如果不会,什么时间会进入?
12. linux __init 加在函数前表示什么样的含义?