经纬嵌入式面试题及参考答案(万字长文)
目录
static 关键字的作用是什么?
const 关键字的使用场景和作用是什么?
如何通过位操作寄存器将某一位置 1 或清零?
你对 Cortex 内核有了解吗?请描述 STM32-CortexM4 架构。
请解释 TC397 架构(Tricore)。
C 语言的编译过程是怎样的?STM32 的启动过程又是怎样的?
在 FreeRTOS 中,如何为任务合理分配栈空间?
多核处理器之间如何实现交互?
你对以太网实现有了解吗?
IIC(I2C)的工作原理是什么?
ADC 转换出现故障时,应如何排查?请描述 ADC 的代码编写方法。
你的项目中是否使用过 DMA?请描述其使用情况。
请简述 C 语言的基础知识。
指针、数组和枚举在 C 语言中的区别和使用场景是什么?
你是否了解链表?请描述其结构和操作。
什么是指针函数和函数指针?它们有何区别和联系?
请讲解冒泡排序的基本思路和步骤。
请详细描述 FreeRTOS 的任务管理机制。
串口通信的工作原理和实现方式是什么?
MQTT 的底层通信实现原理是什么?
为什么在某些项目中会选择使用 ESP8266?
大端和小端模式在数据存储和传输中的区别是什么?
请解释 TCP 为何采用三次握手和四次挥手的过程。
LwIP 协议栈的移植过程是怎样的?
TCP 包头的长度是可变的吗?其最小和最大长度是多少?
Socket 通信的过程是怎样的?当连接断开时,重连机制和保活机制是如何工作的?
请描述服务器项目的改进方向和可能的优化措施。
单例模式的设计原理和应用场景是什么?
请介绍 STL 中的几种常用容器及其特点。
C 和 C++ 的主要异同点是什么?
OSI 七层网络模型的各层功能是什么?
网络层的主要协议有哪些?
指针的使用场景和注意事项有哪些?
你使用过哪些通信协议?请具体描述其中一种。
CAN 协议的工作原理和应用场景是什么?
你在 PID 调参方面有哪些经验?
卡尔曼滤波的原理和应用场景是什么?
你控制过哪些种类的电机?在项目中是如何实现 FOC 控制的?
你使用过哪些单片机型号?它们的主要特点是什么?
在多线程编程中,信号量、互斥量和队列的作用和使用场景是什么?
请描述 lambda 表达式的使用场景和优势。
TCP 和 UDP 的主要区别是什么?
请描述 C++ 面向对象编程的三大特性(封装、继承、多态)以及虚函数的作用。
STL 中哪些容器之间存在继承关系?请具体说明。
在 Linux 系统中,进程的定义和作用是什么?
STM32 的主频和串口波特率的设置方法是什么?
你对指针的理解以及在实际编程中的应用情况如何?
请描述比赛中使用的双核芯片的调度策略。
你是否了解原理图的设计和绘制?
驱动电路的设计原则和方法是什么?
除了应用层,你是否还参与过底层驱动的开发工作?
你接触过哪些芯片?它们各自的特点和应用领域是什么?
预处理、编译、汇编和链接在程序开发过程中的作用是什么?
结构体和联合体在 C 语言中的区别和联系是什么?
static 关键字的作用是什么?
在 C 语言中,static关键字有多种作用:
- 修饰局部变量:当
static修饰局部变量时,该变量的生存期延长到整个程序的运行期间,但其作用域仍然局限在定义它的函数或代码块内。例如,如果在一个函数内部定义了一个static局部变量,那么每次函数调用结束后,该变量的值不会被销毁,下次函数调用时会保留上次的值。
void func() {static int count = 0;count++;printf("%d\n", count);
}
多次调用func函数,count的值会依次递增。
-
修饰全局变量:当
static修饰全局变量时,该变量的作用域被限制在定义它的源文件内,其他源文件无法访问。这有助于避免全局变量的命名冲突,并提高代码的封装性。 -
修饰函数:当
static修饰函数时,该函数的作
