嵌入式八股大纲介绍

alt

【嵌入式八股】一、语言篇https://www.nowcoder.com/creation/manager/columnDetail/mwQPeM

【嵌入式八股】二、计算机基础篇https://www.nowcoder.com/creation/manager/columnDetail/Mg5Lym

【嵌入式八股】三、硬件篇https://www.nowcoder.com/creation/manager/columnDetail/MRVDlM

【嵌入式八股】四、嵌入式Linux篇https://www.nowcoder.com/creation/manager/columnDetail/MQ2bb0

特点:

  • 八股:整理上千份嵌入式面试问题,完全面向面试,不该学的没有。
  • 整理:按知识点分类和先后逻辑关系整理,方便学习和记忆。
  • 重点:一般题目(蓝色)次重点(橙色)重点题目(红色)。
  • 联系:注明各部分知识点的联系,学的时候一起学更好。
  • 推荐:较难知识点有推荐学习的博客和视频。

「作者」

赛博二哈,双非本+985 硕,24 届校招嵌入式求职者,现嵌入式全栈工程师。

「嵌入式八股整理初衷」

在求职过程中,我翻遍了市面上的嵌入式、计算机基础、C/C++ 等八股资料,发现普遍存在一个核心痛点:

内容冗杂混乱,知识点碎片化且重复堆砌,缺乏体系化逻辑,即便强行记忆也难以坚持。 这并非个例,相信许多求职者都有同感。

因此,我耗时近一年,整合各大平台数千份面经,覆盖嵌入式全方向高频考点,结合面试实战经验持续优化,形成了这套逻辑清晰、解答精炼的八股资料。

「资料概览」

精华版:161页,216题,10万+字,覆盖 60% 以上面试高频题,适合时间紧张的求职者。

完整版:805页,1000+题,30万+字(不含代码部分),构建完整知识体系,适合系统备考。

限于个人水平,资料难免存在疏漏,欢迎批评指正。

〇.简历/面试

alt

一.语言篇

alt

01. 常问基础

关键字:static/extern/const/volatile 等 16 组关键字的底层原理与应用场景

基本函数:strcpy/strncpy/sprintf/memcpy/memmove/strlen/strstr/strcat/strcmp 等函数的安全使用与实现差异

预处理:头文件包含规则、宏定义技巧(条件编译、字符串化 / 连接操作)

02. 内存分配

C 内存模型:栈 / 堆 / 静态存储区分配机制、内存泄漏排查方法

C++ 内存管理:new/delete 底层实现、智能指针(unique/shared/weak)原理

硬件相关:大小端转换、数组越界防护、字节对齐规则(#pragma pack)

03. 指针体系

指针操作:类型转换(void*/const 指针)、多级指针(指针的指针)

指针与实体:指针与数组 / 函数 / 结构体的关联应用

进阶问题:野指针预防、智能指针与 RAII 原则、指针和引用的本质区别

04. C++ 核心

基础概念:函数默认参数 / 重载、类与对象模型(this 指针)

面向对象:封装 / 继承 / 多态(虚函数表)、友元 / 运算符重载

高级特性:模板(函数 / 类模板)、STL 容器(vector/map/set)

C++11 新特性:lambda 表达式、右值引用、移动语义

二.计算机基础篇

alt

01. 计算机组成原理

系统架构:数据表示(原码 / 反码 / 补码、浮点数 IEEE754)、CPU 流水线机制

存储系统:Cache 分级结构(一致性协议)、主存与虚拟内存分页机制

指令系统:指令周期流程、中央处理器(ALU / 控制单元)工作原理

输入输出:DMA 传输、中断处理流程

02. 操作系统

进程与线程:组成结构、通信方式(管道 / 共享内存)、调度算法(FCFS/SJF/ 优先级)

内存管理:基础概念、覆盖与交换技术、分配算法(伙伴系统)、虚拟内存(页面置换)

设备管理 :IO 控制方式(程序查询 / 中断 / DMA)、缓冲技术

03. 计算机网络

分层模型

应用层:HTTP/HTTPS 协议(GET/POST 区别、SSL/TLS 握手)、DNS 解析流程、Cookie/Session 机制

传输层:TCP/UDP 对比(报文格式、三次握手 / 四次挥手、可靠性保证)

网络层:IP 协议、路由选择算法

拓展问题:TCP 与 HTTP 的关系、常见网络攻击(DDoS/SQL 注入)原理

04. 数据结构

线性结构:数组 / 链表 / 栈 / 队列的基本操作与性能对比

非线性结构:二叉树遍历(前 / 中 / 后序)、哈希表(冲突解决)

算法专题:回溯算法、动态规划(背包问题)、单调栈、排序算法(快排 / 归并)、贪心算法、图论基础

05. 手撕算法整理

嵌入式高频算法:(嵌入式手撕和纯软手撕侧重点不同,精选104 道高频考题)数组操作、链表操作、哈希应用、字符串处理、栈与队列、二叉树算法、回溯 / 动规 / 排序专题、DFS 搜索、滑动窗口等

三.硬件篇

alt

01. 硬件基础

数字电路:门电路(与 / 或 / 非)、时序逻辑(触发器 / 计数器)

模拟电路:放大电路(共射 / 共集)、滤波电路、ADC/DAC 转换原理

PCB 设计:布线规则、信号完整性、EMC 防护设计

02. ARM 架构

体系结构:Cortex-A/R/M 系列差异、7 种工作模式(用户 / 系统 / 中断等)

寄存器组:37 个寄存器功能分组(通用 / 程序状态寄存器)

指令系统:ARM/Thumb 指令集编码、机器码格式

中断与异常:异常向量表、中断处理流程

03. 单片机开发

基础概念:最小系统设计(晶振 / 复位电路)、程序烧录方式(ISP/IAP)

外设开发:GPIO/ADC/PWM/UART 等基本功能驱动

04. 实时操作系统(RTOS)

核心基础:RTOS 特性、移植要点

任务管理:调度算法(优先级抢占 / 时间片轮转)、状态转换

同步通信:信号量 / 互斥锁 / 消息队列原理与应用

05. 接口协议

串行总线:UART/I2C/SPI 协议(时序图、通信速率)、单总线(1-Wire)

工业总线:RS232/485/422、CAN 总线(帧结构)、SDIO

高速接口:USB/PCIe/MIPI/LCD 接口、EtherCAT(工业以太网)

四.嵌入式Linux篇

alt

四、嵌入式 Linux

01. Linux 应用开发

系统编程:多进程 / 多线程编程、信号处理、IO 多路复用 (select/poll/epoll)

网络编程:socket API(TCP/UDP)、网络编程模型(C/S 架构)

界面开发:QT 框架基础、控件使用

脚本编程:shell 脚本(变量 / 流程控制 / 函数)、特殊硬件接口编程

02. Linux 内核原理

内核分析:启动流程、模块机制(加载 / 卸载)

中断机制:上半部 / 下半部处理、中断共享

并发控制:自旋锁 / 互斥锁 / 信号量、阻塞 / 非阻塞 IO、同步 / 异步机制

内存管理:物理内存分配、虚拟内存映射

03. Linux 内核驱动

初级驱动:内核模块开发、字符设备驱动、平台设备与设备树绑定、GPIO/pinctrl/ 输入子系统、I2C/SPI 子系统

高级驱动:网络设备驱动、摄像头驱动、图像系统、LCD 显示驱动、USB/PCIe 驱动、块设备驱动

04. Linux 系统移植

开发环境:虚拟机配置、Ubuntu 必备工具、交叉编译器安装、SSH 远程调试、tftp/NFS 网络服务

启动移植:U-Boot 配置与调试、Linux 内核移植(裁剪 / 配置)

文件系统:BusyBox 构建、Buildroot/Yocto 工具链、Linux 发行版定制、RAMDISK 虚拟磁盘

以上只列出了相关框架大致内容,具体请于各专栏中查看

内容持续更新,欢迎关注赛博二哈。

alt

#C++##嵌入式##笔试##校招##24届软开秋招面试经验大赏#
【嵌入式八股】一、语言篇 文章被收录于专栏

查阅整理上千份嵌入式面经,将相关资料汇集于此,主要包括: 0.简历面试 1.语言篇【本专栏】 2.计算机基础 3.硬件篇 4.嵌入式Linux (建议PC端查看)

全部评论
大家可以说下意见和建议也点个赞
11 回复 分享
发布于 2023-03-18 22:43 辽宁
真不错,这是我见过的整理最好的资料了
1 回复 分享
发布于 2023-03-29 22:12 辽宁
点赞 回复 分享
发布于 03-02 15:08 浙江
点赞 回复 分享
发布于 2023-09-07 15:28 山东
mark
点赞 回复 分享
发布于 2023-08-12 08:54 河南
收藏了
点赞 回复 分享
发布于 2023-04-07 05:18 湖南
厉害啊!🥳
点赞 回复 分享
发布于 2023-04-04 20:30 江苏
很好的大纲~🤩
点赞 回复 分享
发布于 2023-04-01 11:14 上海
点赞 回复 分享
发布于 2023-03-31 11:32 辽宁

相关推荐

一、前言 以下为个人建议,仅供参考。当你还没有收到面试通知的时候,你就应该先做好准备,多模拟几次面试,找人一对一演练也好;对着镜子自己练习也好,一定要去做这个动作,而不是靠想。因为想要临场超常发挥,那还是想想算了。那应该提前准备一些什么呢?其实就是预测面试官的问题。一般来讲,嵌入式软件面试的流程为自我介绍、根据简历中个人技能及项目进行提问、八股文、反问等,接下来分别说一下各个环节该如何应对。二、自我介绍这一环节是大多数面试的开场白(也不是所有面试官都会让你做自我介绍,但概率极低!)。面试官需要在你进行自我介绍的过程中,再次扫一下你的简历(虽然面试官在对你进行面试之前,已经对你简历进行过分析了)。因此,在这种情况下,你的自我介绍不要再按照简历上的说,更需要突出一些简历上没有的信息或者是与你投的岗位匹配相关度高的信息。个人建议是:先介绍自己的名字➕学校专业;其次、说你与该公司行业、该岗位的匹配度(因此去面试之前需要查看公司简介、了解公司是做什么的)。在该过程中,可以引出自己做的哪些项目与岗位jd是匹配的;最后、说一下求职意向,一定要表现出你就是想来这个岗位。举例:尊敬的面试官,您好!我叫xxx,来自xx大学xx专业,今天来应聘的岗位是嵌入式软件开发。我觉得个人与该岗位的匹配度表现在以下方面………首先是xxx,其次是xxx(一定要往岗位jd上靠拢)。最后,贵公司招聘的该岗位要求里边一些技能点和我的经历是比较匹配的,另外我对xxx方向很感兴趣,该岗位与我的职业方向也是比较吻合的,因此我投递了该岗位。希望贵公司能给我这个工作机会。以上就是我的自我介绍,谢谢。三、专业技能及项目问答这一环节主要是针对你简历上的项目以及专业技能进行提问,以验证你是不是水货!因此,你需要对自己简历上的专业技能、项目经历部分上的每一个字负责!一般来讲,会让你介绍一下你的项目,或者是问你项目中的某个功能怎么实现的,驱动代码怎么写(要能口述出来,所以不建议用cube生成代码,否则连驱动都不知道怎么写)等等。在这个过程中,可能会问到你不会的问题。这个时候不要紧张,更不要不懂装懂,老老实实说你不会,然后说想试着回答一下(尽量答一些相关的点),这样也是很加分的。不要一上来就语无伦次,或者是胡编乱造。遇上不会的很正常,毕竟你不是神,关键是别扣分!三、八股文这一环节快接近尾声了,面试官想要考察一下你的基础知识。一般来讲,包括c语言知识、stm32、内核架构、rtos等。这种八股文一般来讲都是有固定答案的。所以,你在去面试的前一天,你需要好好的回顾、准确来说是背诵这些知识!一定要去背!多背,记在脑子里。并且,个人建议自己整理一个八股文合集(你也不想每次面试之前还要东翻翻,西翻翻吧),这样既能方便记忆,又能节约之后面试的准备时间,非常方便。当然,如果你懒得整理,笔者已经整理好了一份嵌入式软件开发八股文合集,有需要的同学可以私信领取即可。四、其他及反问环节这里的其他指的是一些非技术上的,但又能影响你面试结果的问题。比如说,请你说一下对我们公司的了解?你生活中的优点和缺点?你的职业规划是什么?你能给公司带来什么价值?比较感兴趣的工作内容是什么?如何开展工作等等。上面我例举的都是常见的问题,请好好准备。此外,如果面大厂的话,一般来讲手撕是跑不了的,两道题。因此,需要你自己多花时间刷力扣、牛客等,基础和中等的coding题就足够。最后,来到最后一个环节:反问。这个环节不管你有没有问题,麻烦你一定要问好吗?你不问,那offer也不会问你。通常来讲,反问环节可问以下问题(举例,仅供参考):问进来以后会做什么业务产品?会在哪个部门?部门架构?承担的工作内容是什么?等等…最后的最后,本次分享内容就到这里,感谢观看!如果你能看到这里,相信你面试会通过的,祝大家秋招/春招上岸!如果有需要《嵌入式软件开发八股文合集》、个人开源的mcu➕rtos项目等资料,请私信笔者领取即可
点赞 评论 收藏
分享
评论
71
403
分享

创作者周榜

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