嵌入式开发大纲

专栏初心:本大纲从技术知识点到面试准备,再到具体的公司面试经验,全面覆盖了嵌入式开发领域面试中的核心内容,为提供系统化的面试准备指导。

专栏总览

第1章 C语言

  • 基础知识:运算符优先级、常见数据类型、指针、数组、结构体、内存管理、位运算、宏定义。
  • 重要概念sizeofstrlen 的区别、constvolatile 关键字的作用、指针与数组的关系、指针函数与函数指针的区别。
  • 常见面试问题:内存分配与释放,数组长度计算,C语言中函数调用的参数传递方式,字符串和字符常量的区别。

第2章 操作系统

  • 操作系统基本概念:进程与线程、调度算法、虚拟内存与物理内存管理、内存分页与分段、信号量与互斥量、死锁。
  • 系统调用:进程管理、内存管理、文件系统、网络协议栈的实现、操作系统的同步与异步机制。
  • 常见问题:如何调度任务、进程间通信方式、如何处理多线程同步问题、进程与线程的区别、RTOS的基本概念。

第3章 通信协议

  • 基础知识:TCP/IP协议、UDP协议、串口通信(UART、SPI、I2C)、CAN总线、Modbus协议。
  • 关键点:TCP协议的三次握手与四次挥手、粘包与拆包问题的解决、如何通过协议保证数据传输的完整性。
  • 常见面试问题:如何解决TCP粘包问题、如何设计高效的通信协议、SPI与I2C的通信原理、如何调试串口通信。

第4章 计算机网络

  • 网络基础:IP地址、子网掩码、路由、DNS、NAT、OSI模型与TCP/IP模型。
  • 网络协议:TCP、UDP、HTTP、FTP、DNS、NTP协议的工作原理与实现。
  • 常见面试问题:网络层与传输层的区别,如何优化网络性能,如何进行数据包的抓取与分析。

第5章 C++相关

  • 面向对象编程:类与对象、继承、多态、封装、构造函数与析构函数。
  • C++特性:虚函数、纯虚函数、模板、运算符重载、重载与重写的区别。
  • 常见面试问题:C++中的内存管理,指针和引用的使用,析构函数的作用,如何实现多态。

第6章 C++11

  • 新特性auto类型推导、范围for循环、右值引用与move语义、unique_ptrshared_ptrlambda表达式。
  • 并发编程:C++11中的线程与互斥量,原子操作,条件变量,std::thread的使用。
  • 常见面试问题:如何使用shared_ptr避免内存泄漏,C++11中的线程安全机制,std::movestd::forward的区别。

第7章 STL

  • STL容器:vector、list、map、set、unordered_map的使用及其优缺点。
  • 算法:STL中的排序算法、查找算法、生成算法、变换算法。
  • 常见面试问题:如何选择合适的STL容器,STL中迭代器的使用,如何对STL容器中的元素进行排序与查找。

第8章 数据结构与排序算法

  • 数据结构:数组、链表、栈、队列、树、图、哈希表的实现与应用。
  • 排序算法:冒泡排序、插入排序、选择排序、快速排序、归并排序、堆排序、计数排序。
  • 常见面试问题:常见排序算法的时间复杂度与空间复杂度,如何实现链表反转,二叉树的遍历与操作。

第9章 计算类题目

  • 算法设计:动态规划、贪心算法、回溯算法、分治算法、排序与查找优化。
  • 复杂度分析:时间复杂度与空间复杂度的分析与优化,如何判断算法的最优性。
  • 常见面试问题:如何设计一个高效的算法解决大数据问题,常见算法题的解法。

第10章 常见问题准备

  • HR面问题:自我介绍、职业规划、项目经验、团队合作、压力应对、缺点与优点。
  • 技术面问题:如何解决项目中的技术难题、常见的面试题目、如何做项目管理、面对技术问题时的思考与分析过程。
  • 情景问题:描述一个你遇到困难并解决的经历,如何与团队成员沟通解决分歧。

第11章 20+公司面经杂谈

  • 华为、小米、VIVO、蔚来、百度、理想等面经:技术面问题(基础原理+情景应用+微小细节......)、HR面问题(有无男女朋友+意向工作地+预期薪资......)、项目经验与解决问题的思路、薪资与工作地点的讨论。
  • 面试心得:总结自己在不同公司的面试经历,分享应对策略与技巧,如何准备各大公司的面试。

专栏总结:秋招拿offer,八股看这一份就够啦!通过本专栏的学习,不仅能帮助你准备好嵌入式开发相关面试中的核心技术问题,还将提高你在实际工作中解决问题的能力。希望大家通过精读本专栏,能在秋招中脱颖而出,获得理想的offer!

作者简介:仅用大半年时间0基础天坑急转嵌入式开发,逆袭成功拿下华为、vivo、小米等15个offer,面试经验60+,收藏20+面经,分享自己的求职历程与学习心得。 专栏内容:最新求职与学习经验,详细讲解了嵌入式开发的学习路径、项目经验分享、简历优化技巧、面试心得及实习经验,从测评,笔试,技术面,HR面,AI面,主管面,谈薪一站式服务,助你突破技术瓶颈、打破信息差,争取更多大厂offer。

全部评论
学习一下
点赞 回复 分享
发布于 昨天 13:29 上海
点赞 回复 分享
发布于 今天 15:40 浙江
学习一下
点赞 回复 分享
发布于 今天 15:41 浙江
学习一下
点赞 回复 分享
发布于 今天 20:51 浙江
mark收藏了
点赞 回复 分享
发布于 今天 22:37 浙江

相关推荐

1.预处理&关键字(22道) 1.1宏定义是在编译的哪个阶段被处理的?答案:宏定义是在编译预处理阶段被处理的。 解读:编译预处理:头文件包含、宏替换、条件编译、去除注释、添加行号。 1.2写一个" 标准"宏 MIN ,这个宏输入两个参数并返回较小的一个。答案: #define  MIN(            A, B)  ((A) <= (B)? (                A) : (B))   解读:(1)注意这个题目要用三重条件操作符,在宏中要小心地把参数用括号括起来,并且整个宏也要用括号括起来,防止替换时出现错误。 (2)注意若写"least = MIN(*p++, b);"这句代码会产生副作用,将*p++代入宏体,指针p会做两次自增操作。 1.3已知数组table ,用宏求数组元素个数。答案: #            define  COUNT(table)  (sizeof(                table) / sizeof(table[                    0]))  解读:sizeof(table)得到数组长度,sizeof(table[0])得到数组元素长度,两者相除即可得到数组元素个数。 1.4带参宏和函数的区别?(1)带参宏只是在编译预处理阶段进行简单的字符替换;而函数则是在运行时进行调用和返回。 (2)宏替换不占运行时间,只占编译时间;而函数调用则占运行时间(分配单元、保留现      场、值传递、返回)。 (3)带参宏在处理时不分配内存;而函数调用会分配临时内存。 (4)宏不存在类型问题,宏名无类型,它的参数也是无类型的;而函数中的实参和形参都要定义类型,二者的类型要求一致。 (5)而使用宏定义次数多时,宏替换后源程序会变长;而函数调用不使源程序变长。 1.5内联函数的优缺点和适用场景是什么?(1)优点:内联函数与宏定义一样会在原地展开,省去了函数调用开销,同时又能做类型检查。 (2)缺点:它会使程序的代码量增大,消耗更多内存空间。 (3)适用场景:函数体内没有循环(执行时间短)且代码简短(占用内存空间小)。 1.6关键字volatile 的作用是什么?给出三个不同的例子。(1)作用:告诉编译器不要去假设(优化)这个变量的值,因为这个变量可能会被意想不到地改变。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。 (2)例子: ①并行设备的硬件寄存器(如:状态寄存器)。 ②一个中断服务子程序中会访问到的非自动变量。 ③多线程应用中被几个线程共享的变量(防止死锁)。 以上内容摘自专刊《嵌入式岗位笔试面试真题讲解》,该专刊不仅有真题讲解,还有经验分享,不清楚嵌入式该学什么的同学,想找嵌入式实习/正式工作的同学,都可以来看看:              https://blog.nowcoder.net/zhuanlan/v0ELPM嵌入式推荐公司:华为、    小米     、OPPO、VIVO、荣耀、一加、     CVTE、 大疆 、insta360影石、      美的 、 TCL    、 海信、创维、烽火、比亚迪    、吉利、长安、大众、经纬恒润 、小鹏、    图森未来、 百度 、     滴滴、蔚来、理想、 联发科、 紫光展锐 、全志、     寒武纪 、晶晨半导体 、汇顶、     华为、     中兴、    浪潮 、TP-LINK、讯飞、商汤、     海康威视 、浙江大华      、360、小马智行、元戎启行    、深信服      、移动、联通、电信、旷视     、四维图新      、中芯国际      、复旦微电子、极氪QSWp7XkShEuNKArT7CnOKHBIhjGLeBcP.jpg #牛客AI配图神器#  #牛客AI配图神器#
点赞 评论 收藏
分享
评论
4
8
分享

创作者周榜

更多
牛客网
牛客企业服务