因为一些个人关系,2022年初我从北京回到了石家庄。在找工作,包括后续的研发工作中,不同地点的经历在对比中我逐渐总结出了一些经验。关于“人”方面的感悟我就不赘述了,下面主要在这里总结一些找工作,做工作的经验,希望能够帮助到各位读者。

当面试官问这些问题时,他们究竟在问什么?

  • 实现一个链表的过程。

现在无论是在哪个平台,用哪种语言,都没人手写链表了,Linux内核中自带list.h的使用、详解文章都变得很少了。那为什么面试官还是喜欢问链表、数组、排序等问题?他们其实都在问对《数据结构》的理解。我还记得我在学这门课程的时候印象比较深下图的哈希表。

再延展一点,面试官可能会问一些有现实背景的智力题,大部分也可以在《离散结构》中找到答案。《数据库系统》问的就少了,我至今,连个mysql用作嵌入式数据库的项目都没有碰到过。《计算机组成》算得上是计算机这行的童子功了,问的比较多的也就是大小端(字节序)的问题。

  • 什么是实时操作系统?

这个问题的题眼很明显是实时,但是你同时需要对《操作系统》这门课程有一定认识,才能说明白这个问题。常见的FreeRTOS,

  • 首先需要能够提供多优先级区分的任务(有独立的任务栈)线,这也是为什么要上操作系统的原因,大部分业务简单情况下裸跑代码都是最优解。

  • 高精度计时系统以及实时调度系统,例如Systick定时器来实现精准的系统节拍。

  • 硬件平台支持多级的中断嵌套机制。

再延展一点,面试官可能会提一些实时操作系统项目开发过程中遇到的一些问题,就比较细节了,诸如同步信号量/互斥锁的使用,任务优先级选择的原则,以及一些任务间通信的机制。这块具体问题就具体分析了,最好是结合自己实际遇到的情况,讲述一个问题解决的过程。

  • 你掌握的技术栈都有哪些?

这个问题一般会需要你结合着项目过程中不同技能的使用情况串起来讲一下,当你讲到某一项面试官觉得跟当前岗位有交叉的地方,会让你展开讲讲。下图是某培训机构总结的嵌入式书库。

我就不按单项目来走了,我顺着上边的思路来简单说说各项是怎么再项目中应用的。

  • 编程语言在嵌入式项目中大部分用的都是C语言,而C语言现在很多高校都不再教了。理解一下指针,用递归求一下累加,其实从基础语法和标准库来看,C语言自学确实比较合适。但是C语言真正的魅力在于不同环境下的使用,从操作系统编程,到UNIX环境高编,再到网络编程,大型工业控制软件,你会发现同样是C语言,却各有各的特色美丽。

  • 如果面试公司是搞Linux的,大概率会问一些shell命令以及脚本语言或者Vim快捷键这些细碎但是你要是干过一定熟悉的命令。如果面试公司是搞裸跑单片机的,一般会问一些编译选项的问题,常见的就是不同优化等级对代码的影响。如果是搞Android的,那adb命令肯定也会问两嘴。

  • 《嵌入式操作系统》我们学的就是《深入理解Linux内核》和《Linux内核设计与实现》,非常理论,我还记得最后一道论述题考的是编写一个简单的字符设备驱动。我个人是没有什么内核开发的经验,顶多是进行一些功能的裁剪,驱动的加载适配等,这块我就不误人子弟了。

  • 上图对嵌入式应用开发的细分就比较狭隘了,大部分都是基于POSIX提供的系统接口开发路线。其实作为一个嵌入式工程师,接触到的接口种类,语言类型都是比较广泛的,像是基于无线蓝牙协议栈,抑或是使用python或者C++的标准库,甚至还有基于安卓平台的业务开发,都是能接触到的。最常见的还是各种私有协议,或者一些成熟协议栈的再次开发。

  • 嵌入式驱动开发这块我是很早以前搞的了,像是Linux和Android下边几种类型驱动的整个流程都能说得清楚,驱动的调试方法也说的明白基本就差不多了。驱动这几年貌似改动挺大的,我就不误人子弟了,如果读者您能知道面试部门所开发的驱动类型(视频芯片、存储设备),所用的操作系统和中间件,提前准备准备会事倍功半。

  • 有没有一些硬件基础?

问这个问题,一方面是因为作为嵌入式工程师,调试新板卡,与硬件工程师沟通都是免不了的工作内容,要对《电路分析》,数电模电有一定了解。能够看懂SCH(原理图),调试板卡的时候能供使用诸如万用表,示波器等仪器,分析一些常见硬件问题的原因。一般的公司不会要求能够绘制PCB(板图),当然,会画一些简单的调试板卡,焊接等技能都会根据公司岗位特性相应的加些分。

这个问题有时还有一个小的侧面,那就是《EDA技术与电子CAD》这门课程涉及的东西,因为嵌入式这行往硬件偏的有在用Verilog做FPGA开发的,还有做PLC编程的,这些东西如果有一些经验的话,会对嵌入式驱动开发有一定的指导意义。

  • 一些关于你简历上项目的问题

如果面试官在你的简历上的项目描述看到了自己感兴趣的技术,他就会着重的问题,这个时候你不用着急,慢慢说就可以,也不要因为它一点反馈没有而着急,因为可能他真的也不太懂。还有就是每一次的项目多多少少都会牵扯到业务上的事情,这些东西干过类似的项目都会相通的,多说些细节有助于给到面试官一些正反馈。

我如何完成领导交代的任务

工欲善其事必先利其器,快速搭建一个完整的嵌入式开发环境对于完成领导交代的任务,显得尤为重要。我这里简单粗暴一点,分硬件环境和软件环境,两小节说明一下常见的环境搭建过程以及遇到的一些问题。

硬件环境

常见的硬件环境第一个主体是板卡,这个板卡可以是从芯片厂商买的开发板,抑或是公司内部硬件工程师绘制的PCBA,为了将硬件环境搭建完成,由以下几点需要注意:

  1. 供电。根据板卡入口电压芯片手册或者开发板手册,调整稳压源供电电压(稳压源选择能够显示通道电流),根据供电线正负引脚定义,正确连接板卡至稳压源(这步可能需要我们自己用剥线钳拨一根黑的和一根红的线,并焊接一段至板卡上),将板卡妥善放置(如果调试系统涉及有多个板卡,建议用亚克力板搭一个调试塔),上电前测量电地是否短路。

  1. 连接仿真器至板卡,常见的仿真器有Jlink,ST-link等,他们通过板卡上预留的接口与电脑相连,电脑在使用仿真器之前需要安装相应的驱动,仿真器能够提供固件下载,在线仿真等功能。Jlink内部有一个跳线帽,可以跳接选择是否供电。

  1. 调试口连接。一般的板卡都会留有调试串口供MCU向外打印调试信息,一般都是TTL电平输出,需要我们准备TTL转USB的小板,按照线序正确连接小板至我们需要调试的板卡(一般是TXRX交叉连接),然后将小板USB接口插入电脑,并正确安装小板驱动。常见的驱动安装问题在网络上都能搜索到。串口如果不通,先判断线是否接对,可以尝试TXRX交换。然后判断包括波特率在内的一些基本参数板卡与电脑配置是否一致。

软件环境

  1. 集成开发环境(IDE)。STM32的片子用Keil,也有一些用IAR;Ti的片子用CCS;NXP的用MCUXpresso;不同的芯片厂商针对自己的芯片会提供不同的集成开发环境,但是所有的集成开发环境都有工程管理、代码编辑、编译、下载、程序在线仿真等功能。利用程序在线仿真,我们能调试一些诸如死机等疑难杂症。不要害怕接触一个新的集成开发环境,这对我们嵌入式工程师来说是常态。

  1. 调试工具。一些通用的串口/网口调试工具,能够帮助我们看到原始的网络报文信息,建立TCP链接发送\接收业务协议,或者发送一些AT指令和打印一些Log信息。我们还需要准备一个上位机开发的环境,看您是C#还是QT,抑或是Python熟悉,因为我们仅在一些开发默契可能需要提供给测试一些小的工具,所以用什么语言无所谓,看您什么顺手。

  1. 虚拟机。如果您的板卡上跑的是Linux系统,那么大概率您需要在电脑上安装一个虚拟机,并在虚拟机上运行Ubuntu操作系统。我们需要在虚拟机上编译裁剪Linux系统代码,并将其烧录到板卡上,同时我们还需要搭建交叉编译环境,将我们开发的业务软件安装到系统上。

一些年初和年终的想法

2022年这一年,工作地的调整让我本人除了技术方面,其实更多的是一些“情商”方面的提升。我学习到了很多工作上的方式方法和处理原则,单每一条都再写一篇博文了。同时我还认识了不少与我有着相似学习,工作和生活经历的人,让我对我现在的生活又有了一些新的认识。

  • 厚积薄发,只有不断的积累才能不惧改变。

  • 知行合一,只有全力以赴才能不留遗憾。

  • 宽以待人,只有善良的交际才能留下真诚的朋友。

2023年,预测一下我们这个嵌入式这个行当的一些关键字吧。

L2级别自动驾驶前装渗透率不断提升,逐渐迈向L3/4

工业物联网数字化

国产替代

融合

最后,让我用下面用一段Matlab代码,来结束这一篇博文吧。

f=@(x,y,z)(x.^2+ (9./4).*y.^2 + z.^2 - 1).^3 - x.^2.*z.^3 - (9./80).*y.^2.*z.^3;
[x,y,z]=meshgrid(linspace(-3,3));
val=f(x,y,z);
[p,v]=isosurface(x,y,z,val,0);
patch('faces',p,'vertices',v,'facevertexcdata',jet(size(v,1)),'facecolor','w','edgecolor','flat');
view(3);grid on;axis equal;

嵌入式工程师的2022 || 2023相关推荐

  1. 2022嵌入式工程师面经(2023年1月更新)

    收录了一些在牛客网著名企业嵌入式软件工程师的面筋 如有侵权,立马删除 阿里巴巴嵌入式工程师面经 嵌入式工程师的职位,电话面试的主要内容很多: 项目模式(产品/模块) 蓝牙芯片在产品中的作用(MCU,控 ...

  2. 一个 SAP 开发工程师的 2022 年终总结:四十不惑

    儿时对于一年四季,我最中意的便是冬季,因为冬季意味着即将到来的寒假,可以回到老家,和多日不见的玩伴们痛痛快快玩上一段时间.冬季也总是和春节联系在一起,过年就意味着可以从长辈那拿到一笔压岁钱,把自己心仪 ...

  3. 画一个 “月饼” 陪我过中秋,使用 ESP32-C3 制作炫彩月饼(我为嵌入式工程师争取月饼)

    程序员过中秋活动,C站大部分群体都是程序员,我想为嵌入式工程师求一份月饼 ...... by 矜辰所致 ... 原理图 WS2812 灯带 部分错误更正说明 2022.9.5 前言 今年的中秋节又要到 ...

  4. 2018年摩拜校招嵌入式工程师笔试卷

    拓展: 嵌入式工程师题库(适用于各大名厂笔试.软考.计算机等级考试) 第1题:下面代码片段中有哪些隐患或者错误? 回答: 1.调用get2(m)函数的时候,没有return,也不是全局变量,无法将ne ...

  5. 计算机四级嵌入式真题,2014年3月计算机四级嵌入式工程师真题试题及答案

    2014年3月计算机四级嵌入式工程师真题试题及答案 一.项选择题 1.在进行操作系统设计时,下列哪一个是构造操作系统的方法? A.网络式结构 B.并行式结构 C.微内核结构 D.主从式结构 2.在不同 ...

  6. 给嵌入式工程师的一封信

    最近经常有用人单位给我打来电话,问我这有没有嵌入式Linux方面的开发人员,他们说他们单位急需要懂得在嵌入式linux环境下的软件开发人员,我回答说,现在每年毕业的大学生那么多,还招不到合适的软件开发 ...

  7. 嵌入式工程师该如何选择合适的开发系统

    在进入正题之前,需要先理解"嵌入"的概念,在工程师来看主要从以下3个方面入手. 1.从硬件上,将基于CPU的处围器件整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CP ...

  8. 嵌入式工程师最后都选择了什么职位?

    大家好,我是张巧龙,今天给大家分享一篇关于嵌入式工程师的岗位文章. 嵌入式工程师分布在各行各业上面,这其中包括了消费电子.工业电子.汽车电子和军用电子等. 从功能上面看,嵌入式本身包括了51.mcu. ...

  9. 28335接两个spi设备_IIC和SPI如此流行,谁才是嵌入式工程师的必备工具?

    IICvs SPI 现今,在低端数字通信应用领域,我们随处可见 IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身 ...

最新文章

  1. Vue 组件库 HeyUI@1.19.0 发布,新增 Icon 图标
  2. vscode使用-添加格式化插件
  3. Python字节到大整数的打包与解包
  4. VS2015中快捷注释代码块
  5. GNU C 、ANSI C、标准C、标准c++区别和联系
  6. python遥感数据有偿处理_利用python读写tiff遥感影像数据
  7. Easyui validatebox修改——1.当text发生变化时在校验,2.取消校验,3扩展自定义验证
  8. hbuilderx写Ajax,Hbuilder怎么使用ajax?求指教啊
  9. 渗透测试专题二之msf(kali)的攻击教程将DOS操作系统中的本地文件接口“中断13”改造为网络文件系统...
  10. 网络QoS原理与实现
  11. Atitit ..Net Framework sdk 3.0 3.5 4.04.5 4.6 4.7  .net core版本新特性 v2 s22 1. 新特性来源于 down ms 官方网站 1
  12. bios 微星click_msi微星主板bios设置方法
  13. strcmp()函数
  14. java 导出word 带图片
  15. 原生js实现轮播图效果
  16. 用scratch编写打地鼠游戏
  17. 自己的应用跳转到应用宝评分界面
  18. 我们说运营,到底是在说运营什么?
  19. 【安卓】电脑执行脚本控制安卓手机
  20. 码云gitee 部署公钥匙

热门文章

  1. centos7启动dhcp失败_CentOS7中DHCP配置
  2. 道一云OA系统排名?道一云OA办公系统怎么选?什么是用户口碑最好的道一云OA系统?
  3. android-ProGuard混淆
  4. 关于服务器基本概念汇总
  5. 记一次-更新win10版本到2004
  6. MySQL-SQL注入,导入,导出
  7. 华为荣耀平板5怎么样_荣耀平板5和华为m5青春版哪个好
  8. 阅读笔记 |《上帝掷骰子吗:量子物理史话》曹天元
  9. 您需要最新版本的Outlook才能使用此数据库-MacOS的Outlook
  10. mpu6050三轴加速度数据,三轴角速度数据显示