期待收藏~~~~!!!


写这篇文章的目的,希望以提问的形式,对自己以前的知识进行一个总结,并期待能给即将/已经踏入嵌入式领域的程序员提供一些学习上的帮助~


本文于2020/12/1开始编辑,预计可能有一年的时间持续投入,每周都会添加一些问题,不断地更新和完善。


涉及但不限于:
C语言经典题(数据结构,指针,…)
操作系统(调度,同步与并发,中断,内存,文件系统,…)
Linux驱动(设备树,)
网络(…)
存储(…)
总线(I2C,SPI,UART,USB,PCIe,…)


C语言

【C语言】请描述一个可执行程序占用的内存分为哪几个区?每个分区各自的作用?
【C语言】谈谈内存分配中的(.data)段和(.bss)段的区别?为什么要分.data段和.bss段?
【C语言】谈谈内存分配中的堆和栈的区别?为什么要有堆区和栈区呢?
【C语言】解释局部变量、全局变量、静态变量的含义
【C语言】static关键字的作用?
【C语言】const关键字的作用?
【C语言】register关键字的作用?
【C语言】extern关键字的作用?
【C语言】volatile关键字的作用?
【C语言】inline关键字的作用?
【C语言】有关Sizeof的经典笔试面试题
【C语言】有关Point指针的经典笔试面试题
【C语言】什么是指针函数?什么是函数指针?他们之间有什么区别?
【C语言】提高C代码运行效率的方法有哪些?列举几个提高代码执行效率的方法
【C语言】结构体复制与赋值、浅拷贝与深拷贝相关问题
【C语言】引用和指针的区别?
【C语言】i++和++i的区别是什么?哪个效率高?为什么?
【C语言】写一个“标准”宏,求结构体内一个变量相较于结构体的偏移?
【C语言】写一个“标准”宏,实现输入两个参数并返回较小的一个
【C语言】写一个“标准”宏,实现交换两个参数值
【C语言】写一个"标准"宏,已知数组table,求出数组的元素个数

【C语言编程】请自己实现一个strlen函数
【C语言编程】请自己实现一个strcmp函数
【C语言编程】请自己实现一个memcmp函数
【C语言编程】请自己实现一个strcpy函数
【C语言编程】请自己实现一个memcpy函数
【C语言编程】实现一个函数,判断字符串str2是否在字符串str1里
【C语言编程】用C语言写一个能让系统崩溃的程序


操作系统

【操作系统】什么是RTOS?实时操作系统与普通操作系统的区别?
【操作系统】什么是优先级反转?如何解决优先级反转?
【操作系统】什么是优先级继承?
【操作系统】什么是优先级天花板?
【操作系统】优先级继承和优先级天花板的区别?

【中断】什么是异常?什么是中断?
【中断】什么是异常向量表?什么是中断向量表?
【中断】什么是中断上下文?什么是进程上下文?
【中断】请描述从进程上下文到中断上下文的切换过程
【中断】什么是中断底半部?
【中断】中断底半部的实现机制有哪些?如何选择合适的下半部机制?
【中断】请描述一下中断的响应过程?
【中断】发生硬件中断后,ARM处理器做了那些事情?
【中断】写一个中断处理程序,需要注意哪些问题?
【中断】为什么在中断里不可以睡眠?
【中断】为什么在中断里不可以使用耗时很长的函数?

【内存】linux在系统调用进入内核时,为什么要将参数从用户空间拷贝到内核空间?不能直接访问,或是使用memcpy吗?非要使用copy_from_user才行吗?

【同步与并发】什么是信号量?信号量原理是什么?信号量有什么优缺点?
【同步与并发】什么是互斥锁?互斥锁原理是什么?互斥锁有什么优缺点?
【同步与并发】什么是自旋锁?自旋锁原理是什么?自旋锁有什么优缺点?
【同步与并发】互斥锁和信号量的区别是什么?
【同步与并发】互斥锁和自旋锁的区别是什么?
【同步与并发】为什么要使用自旋锁和信号量?说说自旋锁、信号量的应用场景?
【同步与并发】什么是死锁?产生死锁的原因及必要条件?如何避免死锁?
【同步与并发】写一个简单的死锁demo


总线

【总线】什么是并行传输?什么是串行传输?什么是异步传输?什么是同步传输?什么是等时传输?

I2C总线

【I2C】在中断函数中能否使用I2C传输?为什么?
【I2C】I2C的传输速率有哪几种?如何设置?如何获取?

SPI总线

【SPI】如何选择SPI的相位和极性?

PCIe总线

【PCIe】如何获取PCIe设备的BAR空间长度?

USB总线


网络

【网络】IP报文头部最少占多少字节?介绍一下 IP报文头部的字段
【网络】UDP报文头部占最少占少字节?介绍一下UDP报文头部的字段
【网络】请问ICMP是什么协议?处于哪一层?
【网络】请问ARP是什么协议?处于哪一层?
【网络】IP地址冲突会导致什么问题?
【网络】MAC地址冲突会导致什么问题?
【网络】能不能说一说 TCP 和 UDP的区别?

TCP

【网络】TCP报文头部最少占多少字节?介绍一下 TCP报文头部的字段
【网络】请简述TCP三次握手的过程?
【网络】请简述TCP四次挥手的过程?
【网络】请简述TCP_SYN泛洪攻击的原理,并阐述如何应对SYN泛洪?
【网络】能不能说说TCP报文中时间戳的作用?
【网络】TCP的超时重传时间是如何计算的?
【网络】能不能说一说 TCP 的流量控制?
【网络】能不能说说 TCP 的拥塞控制?
【网络】能不能说说 Nagle 算法和延迟确认?
【网络】如何理解 TCP 的 keep-alive?


开放题

你觉得驱动最难的是哪部分?为什么?


获取更多相关的笔试面试题,可收藏系列博文,持续更新中:
C语言|BSP开发|嵌入式软件|Linux驱动|笔试面试题汇总帖

更多推荐

BSP开发|嵌入式软件|Linux驱动|笔试面试大全