从大四开始到现在,也应聘了很多家公司,对嵌入式软件开发面试及涉及到的一些知识点进行一下总结
1.static和extern的区别,并各举出三个应用的例子;
2.const关键字相关问题,如const int *p,int const *p的区别等等;
3.volatile 关键字,设置寄存器地址时为什么要用该关键字;
4.C语言中的struct和C++中的类有什么不同;
5.结构体大小的计算;
6.C 语言基础知识考察 static void inline p(const int *p){ ........ } 解释该函数中没个关键字的意思;
7.冒泡选择法排序,快速排序;
8.链表、栈操作;
9.编程实现memcpy函数;
10.编程实现将MAC地址字符串中的每个字符转换成int型存入整型数组里;
11.开辟内存空间malloc与free;
12.进程间通信的方式有哪些?信号量、管道(有名管道和无名管道的区别)、消息队列、socket.、共享内存..
13.进程和线程的区别;
14.TCP/IP协议,UDP协议,TCP/UDP创建和连接的过程,三次握手建立连接的过程;
15.TCP/IP协议的七个模块(物理层、网络层、会话层等等);
16.ping 命令用的协议;
17.多任务问题或者说并发(异步)事件处理(调度队列,用while循环等待处理(这种方法的具体说法忘了));
18.大小端问题(小端:高位存储在高地址,低位存储在低地址;大端相反);
19.创建父子进程fork();
20.创建管道pipe;
21.socket有几种;
22.蓝牙传输的速率是多少;
23.关于蓝牙心率计项目的一些问题:蓝牙建立连接的过程、所用到的几个芯片之间的联系(画出关系图);vs1003读取发送数据的速率及缓冲区大小;
24.智能家居项目:单总线温湿度传感器驱动程序中的单总线通信协议(怎么判断什么时候该给ARM板或主控芯片发送数据);
未完待续......