首页 / 嵌入式
#

嵌入式

#
5273459次浏览 64804人互动
此刻你想和大家分享什么
热门 最新
Reolink睿联技术招聘内推
睿联技术2026校园春季招聘正式启动啦!公司介绍:深圳市睿联技术股份有限公司成立于2009年,致力于智能家居与互联网云服务,旗下品牌“Reolink”在跨境家居安防领域已成为行业领先者,在欧美市场尤其受到欢迎。公司现有员工800余人,基地分别位于深圳(南山、宝安)与武汉(本次春招无武汉岗位)。招聘岗位:产品类:用户体验设计师研发类:嵌入式软件开发工程师、web前端开发工程师、web后端开发工程师、人工智能算法工程师、安全工程师、硬件工程师、结构工程师、测试工程师、运维工程师、项目经理市场品牌类:数字营销、数字营销(官网)销售运营类:跨境电商运营、跨境电商运营-意/西/德、独立站运营(官网)、海外渠道销售职能支持类:现场支持工程师、技术支持-德语福利待遇:有竞争力的薪资年终奖(2-4个月),季度团建经费,零食和周五下午茶丰富的节日福利(春节、端午、程序员节等)免费班车,周末双休若需加班公司会提供晚归餐券并且可免费打车入职你将收获:入职&转正礼包生日礼包无限零食,周五下午茶(奶茶+甜品)节日礼物现在就点击链接投递简历,加入睿联大家庭吧!https://app.mokahr.com/campus_apply/reo/136006?recommendCode=NTAcUg4&amp#/内推码:NTAcUg4(内推简历优先筛选,加速流程推进)如果有任何问题,欢迎在评论区留言或私聊!投递简历后,也可以随时联系我帮忙跟进招聘进度~
点赞 评论 收藏
分享
昨天 09:55
已编辑
门头沟学院 嵌入式工程师
春招结束offer帮选
投票
点赞 评论 收藏
分享
嵌入式学习路线分享
前天发了总结之后,想给大家分享一下我的学习路线 :嵌入式到底该怎么学?学习路线怎么走?其实这个问题我自己也纠结过很久,所以把我一路走过来的经历简单捋了一下,不一定适合所有人,但至少是我亲身踩过坑、调整过的路径。先说一个我自己一开始踩得挺狠的坑:刚入门学嵌入式的时候,我特别容易在底层细节上卡太久。比如:1.一个寄存器每一位都想搞清楚2.HAL 库底层怎么实现反复去翻3.时钟树不全弄明白就不敢往下写结果就是:看起来学得很“深”,但项目迟迟跑不起来,系统也没搭成,投入产出比其实不高。后来慢慢意识到一件事:在入门到进阶阶段,先把系统跑通,比一开始吃透所有细节更重要。下面是我自己走过的一条学习路线(偏 MCU + RTOS)第一阶段:C 语言 + 基础数据结构这个阶段我没追求什么高级语法,更多是理解:1.指针、数组、内存到底在干嘛2.能不能把代码写清楚、不出奇怪 bug说实话,这一步真的就是地基,后面写驱动、写 RTOS 任务,全靠它。第二阶段:MCU 外设 + 中断 + 调试这一阶段我觉得不在于“会多少型号的芯片”,而在于:1.GPIO / 串口 / I2C / SPI / 定时器你是不是真写过2.中断敢不敢用、会不会用3.程序跑飞了,你是懵住,还是知道从哪查能不能独立把一块板子跑起来,比“听说过多少概念”重要得多。第三阶段:做一个完整的小系统项目这是我感觉很多人容易卡住的地方。项目不需要多复杂,但一定要完整:1.有整体功能2.有模块划分3.有你自己真实的调试和踩坑过程在我实习和秋招面试过程中,能明显感觉到企业更关心的是:你能不能把一个系统从 0 跑到 1,而不是背了多少知识点。第四阶段:再回头补 RTOS / Linux等前面这些走过一遍,再学 RTOS 或 Linux,感受会完全不一样。你会知道:1.为什么要用 RTOS2.它解决的是哪一类问题3.在系统里该放在什么位置而不是只停留在“会用 API”。最后想说一句自己的真实感受:嵌入式不是一条越早卷越好的路,而是一条工程感越来越强的路线。与其焦虑自己“是不是学得不够多”,不如先把一个系统真正跑通。如果你现在正卡在学习方向或项目选择上,也可以私聊我,我们一起捋一捋。
补面神操作:先跑通系统真是少走好多弯路
点赞 评论 收藏
分享
2025-08-12 00:38
已编辑
门头沟学院 嵌入式工程师
26秋招-拓竹嵌入式软件面经
7.31投递,8.7约面,8.11一面如下:1、自我介绍2、如何理解堆和栈?3、在裸机或者RTOS中,有什么比较快速的方法去精确确定一个任务或者整个系统里面栈的 最大使用深度 是多少,如何运行一段时间后查看栈用了多少?4、什么情况下栈内容会变化?5、CPU保存现场(函数嵌套、中断等场景下)都是保存什么信息?6、系统异常(比如进入HardFault)如何定位源头?7、说一下MCU启动的过程,从上电到跑到main函数8、全局变量的初始化过程是在哪里初始化的?9、看你项目里用串口挺多的,说一下你是怎么用串口的?(DMA、缓冲区、中断)10、DMA的全满中断和串口空闲中断(当二者都满足触发条件时)会同时将标志位置位然后触发吗?(我答的是先DMA全满再空闲,因为打日志看过,但好像没答到点子上)11、继续10中的场景,当满足触发这两个中断的条件后,我把中断给关了10个字节的时间之后再打开(或者说更高优先级的中断一直把系统阻塞住了),DMA和空闲中断的标志位都还在,这时CPU可能需要仲裁一下,这会对你的驱动有影响吗?如果要没有影响的话需要怎么做?(没太懂这个提问的意思)12、说一下RTOS的运行机制?13、进程任务的切换时机?14、系统 如何/什么时候 得知高优先级任务准备好了?(涉及底层实现原理吧)15、详细说一下某个项目16、系统中微秒级的延时是怎么实现的?17、IIC中时序的延时是如何实现的?18、软件IIC造成的CPU被多次阻塞,中断会造成这些延时的滞后,这些对IIC的读取有影响吗?19、IIC时钟不均匀会对通信有影响吗?20、讲讲使用cmbacktrace定位到的一些实际的问题案例21、数组越界一定会产生hardfault吗?不产生Hardfault的话会有什么其他的影响吗?22、你做Bootloader时,你觉得其最重要的功能是什么?23、Bootloader跳转过程中DMA要关吗?24、说一下低功耗怎么做的?超低功耗Standby模式想唤醒应该如何唤醒?25、介绍一下软件通信协议是怎么设计的(串口协议栈)?如何去优化协议栈的设计?无手撕,反问环节问了一些上面没答出来的点一面总结:根据简历上的项目,由八股为切入点深挖底层,甚至好多问题我都不明白要答什么还是很难的,感觉和传说中的大疆面试差不多了,很深挖。最难的是会根据你当前的场景给你些假设,让你回答会发生什么注:上面的提问点与项目高度相关,并不是纯八股,仅供参考--------------------------------------------------------------------------------------------------
求求offer的河老...:以下是自己的一些解答不一定对,希望大佬解答 2.堆栈都在ram中,生长方向不同,管理方式不同,一个自动分配一个手动管理 3.估算最大深度没思路,运行时候可以掉rtos自带的函数可以看见深度 4.任务切换入栈出栈,进中断保存现场 5.lr pc psr r0-r3 r12?具体记不清楚了 6.系统异常会压栈pc lr还有状态寄存器,可以根据lr判断此时是中断环境还是任务环境,根据keil内存访问找到sp对应的栈,找到压栈的pc然后和反汇编来对比就知道什么地方有问题 7.上电复位,从程序起头中断向量表拿到复位中断地址,从复位中断里面拿出来.s里面的内容,主要是初始化堆栈.stm32会有一个system init(设置频率和时钟),好像还有变量搬移到ram里面具体记不清楚了
查看25道真题和解析
点赞 评论 收藏
分享
嵌入式软件开发学习路线
一、学习方向选择以下仅代表笔者个人看法:嵌入式软件总体分为linux和mcu方向。这两个方向的应用场景不同,导致无法在同一份工作中既做Linux,又做mcu。因此,如果在时间不充裕的情况下,大家根据自身情况挑一个方向去学习就够了。mcu方向(也称为嵌入式软硬件方向)更专注于软硬件结合,也就是说除了软件部分之外,还需要懂硬件。如果在软件和硬件分的没那么开的公司,作为一名嵌入式软件工程师,不仅要自己写代码,还需要自己画原理图,画PCB。在软硬件分开的情况下,基本要求是要能看的懂电路原理图,这也是大多数转行者很容易忽视的点。linux方向由于岗位较少,通常需要驱动/内核/应用一起做,仅有部分公司或者原厂才会放出单一的岗位出来,如单独的linux驱动岗位,内核/应用岗位等,这个方向比较偏软件一点。但由于岗位较少,门槛也就稍微高一些。二、mcu方向学习路线0基础的同学建议按照步骤走(再次重申是个人看法,如果你觉得不对,就不要看下去了):1、掌握基本电路知识,重点主要为电容、电感及滤波电路,还有一个傅立叶变换(可以看刘陈版本的电路分析基础这本书或者是b站进行学习)2、模电(主要掌握二极管、稳压管、三极管、mos管、放大电路、运算放大器、反馈电路);笔者个人推荐的书籍是黄丽亚的第三版模拟电子技术基础,学完前7章就够了。当然,也可以选择其他版本的,看个人喜好。3、数电(主要掌握进制转换,反码补码、逻辑电路、触发器、寄存器、AD转换及存储器知识),推荐书籍为华中科技大学的电子技术基础(数字部分)。上述三步就是为了打牢硬件基础,能看懂电路原理图。4、接下来学习一款EDA工具的使用,不要再去学嘉立创了!企业里边只有三大EDA工具:Altium Designer/Candence/Pads,任意挑一个去学习。个人比较推荐学习AD,可以在b站上看凡亿教育的课程进行学习。5、学习C语言,个人还是推荐谭浩强红色的那本高校书籍,当然也有其他优秀课程,大家可以自行选择。C语言的学习是一个持续加深的过程,前期先掌握基础就行,需要学习的是前1-7章,第8章的指针变量/数组指针,第9章的结构体/共用体/枚举/typedef。6、学习stm32,不要再浪费时间去学51老古董了。个人推荐正点原子,资料很充足,按照资料学基本就够了。同时一定要学标准库,前期不要把精力浪费在学hal库上,hal库等后边自己看一下就行。学习方法是买一款开发板(F1/F4都可以),跟着资料一步一步学,掌握基本常用外设如串口/GPIO/定时器/中断/PWM/输入捕获/LCD/ADC/IIC/SPI/485/CAN/IAP等。ps:学习过程中不要只看,一定要做!看懂了不等于你掌握了,毕竟实践是检验真理的唯一标准!7、做完上述步骤,恭喜你已经打好基础了,进一步继续深入学习c语言的提高部分,把前边说的第8章的二维指针/数组指针/指针数组等等指针的高阶用法掌握,以及动态内存分配函数等;还有第9章的链表;此处笔者推荐看人民出版社的c和指针一书,进行c语言的加深学习。这本书需要掌握如编译的底层原理/指针的高阶用法/递归函数/单向或者双向链表/预处理器等。8、完成c语言的进阶学习之后,开始学习stm32内核,这里推荐看CM3权威指南这本资料,主要看前9章内容,至少要知道寄存器组/PendSV/SVC/systick定时器等,为学习RTOS打好基础。9、开始学习RTOS,自行挑选一款rtos进行学习(ucos/freertos/rt-thread),笔者是同时学了ucos和free,个人比较推荐从ucos学起(也是正点原子的资料),毕竟资料比较多,底层原理讲的比较细,比如任哲老师的嵌入式实时操作系统原理及应用就是以ucosii进行讲解的。当然大家也可以选择其他的,这个阶段建议还是多看资料,少看课。因此笔者并没有什么推荐的课程。ps:到这一步要开始做32和rtos的项目了,做完项目以后就可以去投实习/秋招,这个程度已经够找工作了。10、学习常用数据结构:数组/堆/栈/链表/树/哈希表/队列,图不要求掌握,树学二叉搜索树就够,在弄清楚基本数据结构以后再去力扣上进行刷题,比如要知道栈不仅可以用数组实现,还可以用链表实现。ps:这一步想进大厂必不可少,毕竟面试都是要手撕的!11、学习RTOS源码,弄清楚任务调度/任务通信/时钟及延时/内存管理等。为什么要先去学习数据结构再回来看rtos源码,就是因为其源码中包含大量链表和队列的使用,如freertos中列表与列表项中涉及到双向链表的插入和删除操作,这样才能看得懂源码。ps:到这一步已经够卷了,笔者觉得不用担心找不到工作了。接下来说的东西可以入职以后再进行学习12、其他通用中间件的学习,如网络协议(mqtt/lwip协议等),选一个进行学习。还有图形库lvgl/ewmin等,也是选择一个进行学习。学习方法也是找资料,我依然用的是正点原子。13、学习代码版本管理工具git的使用,需要掌握常用命令,如克隆,提交,上传以及创建分支等。学习方法笔者推荐是看官网。三、linux方向学习路线linux方向笔者还在摸索中,因此就简单说一下1、先学会使用linux系统,学会Linux基本命令使用,学习方法推荐b站尚硅谷。2、学习gcc、make工具链的使用及makefile脚本。3、学习c++,主要掌握面向对象特性,如类和对象/继承/重载/多态/封装/虚函数/智能指针/动态内存等。推荐书籍为c++ primer第五版以及菜鸟编程网站。4、Linux应用编程,如进程/线程、文件io、网络编程等。推荐资料--正点原子。5、学习QT开发,推荐资料正点原子。6、Linux下的裸机开发(推荐买板子学习,如imx6ull;掌握常用外设以及CortexA处理器架构),推荐资料--正点原子或者韦东山。ps:学习linux驱动需要有电路原理图能力。7、Linux驱动开发(结束裸奔,上操作系统了, 包括移植uboot/linux内核/根文件系统等、掌握Linux三大类驱动,包括字符设备/块设备/网络设备驱动),同时需要掌握GDB调试。可以看到嵌入式两个方向的内容都非常多,因此大家选一个学,找工作足够了。本次讲解就到这里,感谢观看!
点赞 评论 收藏
分享
2025-08-20 22:50
已编辑
门头沟学院 嵌入式工程师
26秋招-影石嵌入式软件面经
投递的是RM通道(开的很早截止也很早),约面前无笔试8.8一面,40min,面试分为四部分:自我介绍、嵌软八股、实习和项目、反问。如下:先自我介绍:1、你的实习经历都是在汽车领域,为什么想要做消费电子2、你对自己的方向有什么倾向(未来想做嵌软的哪部分)3、对我们公司有什么了解,对于影像行业有什么看法开始八股3、平时编程用C还是C++4、C当中用过什么数据结构5、用链表和队列做过什么功能开发6、IPC通信:队列是用的变长还是定长的,消息包是固定长度的7、C++构造函数中的深复制和浅复制的区别?(没答出来)8、智能指针和虚函数,什么情况下需要使用虚函数9、进程和线程的区别、进程间常见的通信方式、RTOS任务间常见的通信方式、有用过条件变量聊实习和项目10、第一段实习的工作,在相关技术(通信、存储)中有没有遇到过什么问题、什么bug(想听细节)(但是实习都是学习和打杂,真憋不出来什么印象深刻的问题)11、介绍RoboMaster比赛所做的工作、代码合作开发的管理、联调过程中有没有什么问题、如何快速定位问题、有没有偶现性问题12、RTOS里面的稳定性问题通过什么方式去定位(还是之前提到的偶现性问题)?反问:部门情况、面试次数(三面、含HR面)-----------------------------------------------------------------------------------------------------------8.11日被告知之前一面的面试官是音视频嵌入式的,可能比较偏linux,就把我推荐到Bsp嵌入式部门进行二次一面8.12日二次一面:1、详细说明某个项目负责的内容2、你编写的驱动的抽象有没有具体的例子,功能实现3、其中一个模块是用的什么总线?4、IIC常见的速率?IIC原理?IIC传输信号的组成部分和内容?IIC地址有多少位?IIC最多能挂多少设备?IIC电路设计上有上拉电阻吗?开漏输出和推挽输出有什么区别?5、讲讲FreeRTOS任务调度原理?任务运行的状态有哪些?举例说明任务状态是如何切换的?优先级反转?互斥锁和信号量的区别?不同任务之间通讯/交换数据,如何实现?不同的任务如何做状态的同步?消息队列有什么特性?FreeRTOS低功耗是怎么做的?进入低功耗模式怎么唤醒?6、C语言Static关键字有什么作用?函数内部定义的静态局部变量的内存在哪里?C语言内存分区?C语言代码编译生成可执行文件会经历哪些步骤?.o文件是什么?其内部是机器代码还是汇编代码?大小端的含义?回过头来发现自己有些题目答得还是不太好的,还需要巩固。-----------------------------------------------------------------------------------------------------------8.20二面如下:1、对自己将来找工作的规划?两段实习经历都很短?2、问项目做的咋样?研究的深不深入?根据项目点挨个一个一个问3、任务优先级如何规划?提升系统响应速度怎么做到的?系统可靠性如何保证?4、环形缓冲区和乒乓缓冲区相比有什么优缺点?环形缓冲区怎么控制回绕?DMA怎么用的?5、定位HardFault的方法?无损调试?6、FreeRTOS相比于裸机多了什么?互斥量的作用?两个线程操作同一个变量为什么不行?原理?7、C++接触过吗?C语言中的printf是如何实现传任意多个参数的?8、最近有学到一些让自己觉得 比较开心/厉害/之前的盲区 的知识点?9、FreeRTOS所有任务能不能没有自己的栈,然后共用一个栈?一个任务线程运行的时候有哪些上下文需要保存?10、函数调用的参数存在哪里?函数局部变量存在哪里?11、假设一个函数有30个局部变量,那在上下文切换的时候会如何保存?
求求offer的河老...:八股文盛宴啊我的天啊
查看60道真题和解析
点赞 评论 收藏
分享
玩命加载中
牛客网
牛客网在线编程
牛客网题解
牛客企业服务