根据面经准备面试第六期-2026嵌入式软开-cvte

作者:zzck链接:https://www.nowcoder.com/feed/main/detail/47a8cb3cd267449ca888d575a0ad44bd?sourceSSR=search1.自我介绍

2.#include<>和#include“”区别

3.#define 和const有何区别,各自优势

4.指针,用过二级指针吗

5.常见协议,UART iic spi can讲解和相互的优点

6.单片机gpio模式几种,介绍一种模式

7.单片机开漏输出用过吗,用在哪里,介绍一下

8.介绍项目

9.sizeof和strlen介绍

10.讲一下函数调用过程

2.#include<>和#include“”区别

  • #include<>:用于包含系统头文件,编译器在标准系统路径(如/usr/include)中查找文件。
  • #include"":用于包含用户自定义头文件,编译器首先在当前目录(或编译时指定的包含路径)中查找,如果找不到,再按系统路径查找。

3.#define 和const有何区别,各自优势

#define预处理指令、进行简单文本替换、不占内存

优势:可用于定义常量、宏函数、条件编译、灵活性高

缺点、不进行类型检查、可能产生副作用

const:修饰变量,表示只读,占内存(存储在,只读段),有类型检查

优势:类型安全,可调试,避免宏的可能错误

缺点,可能用于条件编译,不能定义宏函数

适合定义有类型的常量,能避免类型不匹配错误,可用于数组长度定义

4.指针,用过二级指针吗

一级指针,指向变量的地址,指针是存储变量地址的变量,通过可间接访问或修改变量的值,是c语言的特性(如动态内存分配、函数传地址修改参数

二级指针,指向指针的地址,常用于动态二维数组,函数中修改指针的值等,即存储指针变量的地址

int a = 10; int *p = &a; // 一级指针:p存储a的地址 int **pp = &p; // 二级指针:pp存储p的地址

5.常见协议,UART iic spi can讲解和相互的优点

uart、2线,tx、rx、异步通信、无时钟线、靠波特率同步、硬件简单、成本低,如串口调试

iic、2线、sda数据线、scl时钟线、同步通信、主设备提供时钟、支持多主多从、传感器、eeprom

spi、4线、mosi、miso、sclk、cs同步通信、主设备控制时钟和片选、cs1、cs2、高速全双工、抗干扰强、适合短距离高速传输、显示屏、flash、adc

can(2线,差分信号)多主通信(总线仲裁机制、抗干扰极强

6.单片机gpio模式几种,介绍一种模式

GPIO(通用输入输出)是单片机与外部设备交互的引脚,常见模式(以 STM32 为例)包括:

  • 输入模式:浮空输入、上拉输入、下拉输入、模拟输入;
  • 输出模式:推挽输出、开漏输出;
  • 复用功能模式:将 GPIO 复用为外设功能(如 UART 的 TX/RX、SPI 的 MOSI)。

举例:推挽输出

  • 原理:输出级由两个 MOS 管组成(P 沟道和 N 沟道),当输出高电平时,P 沟道导通、N 沟道关闭,直接输出高电平(通常等于电源电压);输出低电平时则相反。
  • 特点:能直接驱动外部设备(如 LED、继电器),输出电流较大(一般可达几 mA 到几十 mA),且高低电平驱动能力对称。
  • 应用:常用于需要强驱动能力的场景,如控制 LED 亮灭、驱动小型电机。

7.单片机开漏输出用过吗,用在哪里,介绍一下

开漏输出是gpio模式的一种,需外部上拉电阻才能输出高电平

8.介绍项目

9.sizeof和strlen介绍

sizeof运算符、计算变量/类型占用的内存字节数、可接收变量、类型,包括数组、结构体

strlen运算符、计算'\0'之前的字符个数,仅接受以'\0'之前的字符个数,char,仅仅c风格字符串,abc的strlen为3

10.讲一下函数调用过程

函数调用是程序执行流程跳转的过程、底层通过栈实现,

参数压栈,将函数实参从右到左依次压入栈中

返回地址压栈,将当前代码执行的下一条指令地址压栈,供函数执行完返回

栈帧切换,保存当前栈基地址到栈中

将栈顶指针的值赋给ebp,建立新的栈帧(函数的局部变量将在新栈帧中分配)

执行函数体:为局部变量分配栈空间,执行函数内代码

函数返回,释放局部变量空间

从栈中恢复调用的ebp,恢复原栈帧

弹出返回地址、跳转到该地址执行源程序

#秋招#
全部评论

相关推荐

📍面试公司:科大讯飞🕐面试时间:2025年09月09日💻面试岗位:嵌入式C++软件开发❓面试问题:1.内存对齐有哪几种方式?请解释其原理和优缺点。2.栈溢出会导致什么后果?如何避免?3.在资源受限的嵌入式系统(如RAM极小)中,有哪些优化内存使用的策略?4.static关键字在C语言中有哪些作用?请分点说明。5.函数和宏定义的区别是什么?各自适用于什么场景?6.请解释环形缓冲区(Ring&nbsp;Buffer)的原理及其应用场景。7.CPU从I/O接口读取数据的路径是怎样的?请描述这一过程。8.看门狗(Watchdog)的工作原理是什么?它在嵌入式系统中的作用是什么?9.C++中map和unordered_map的区别是什么?(可从底层实现、时间复杂度、内存占用等方面回答)10.哈希表的扩容机制是如何工作的?负载因子(Load&nbsp;Factor)的意义是什么?11.请谈谈你在项目中最具挑战性的一个任务,你是如何分析和解决其中的难题的?12.你如何理解科大讯飞的技术方向(如人工智能、语音识别)?你认为你的技能如何与公司业务结合?13.作为校招生,你更看重公司的哪些方面?(如技术成长、团队氛围、项目机会等)🙌面试感想:科大讯飞的面试官非常注重基础知识的深度和理解,尤其是C/C++、内存管理、数据结构和嵌入式系统相关概念。此外,项目经验中的实际问题解决能力也是考察重点。建议在校招面试前充分复习底层知识(如内存对齐、栈机制、硬件交互等),并对简历中的项目细节做好深入准备的准备。同时,了解公司的主要技术方向(如AI、语音处理)并能结合自身技能表达兴趣和匹配度,会是一个明显的加分项
查看13道真题和解析
点赞 评论 收藏
分享
评论
1
10
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务