电子信息这个专业,四个字背后其实藏着两个截然不同的赛道:嵌入式方向和芯片方向。很多人到了大三才开始纠结选哪个,但真正拉开差距的,是大一、大二那些基础的打法。嵌入式方向典型路径是C语言、单片机、通信协议、Linux驱动这样的链条,节奏快、见效快,本科毕业就有大量岗位可选;芯片方向则更偏向数字逻辑、SoC体系、后端与验证,门槛高、周期长,通常需要读到硕士,但天花板同样诱人。这篇规划就把四年拆成四个阶段:大一到大二解决C语言、电路、单片机、通信协议;大三用项目把知识串起来,并分出嵌入式Linux和芯片应用/设计两条支线;大四集中解决考研、就业、面试。后面都是我自己带过新人、面过实习生、以及踩坑后沉淀下来的实操建议,不搞虚的,照着走至少能让你少走一年弯路。
1. 认清赛道:嵌入式与芯片,两条路的底层逻辑
1.1 嵌入式不是"单片机"这么简单
很多同学一想到嵌入式,第一反应就是STM32、流水灯、超声波测距。这只是嵌入式最基础的MCU阶段,最多算个起点。真正的嵌入式按开发层次可以拆成三层:底层硬件,负责设计电路、做PCB、调试电源和时钟;底层软件,包括寄存器操作、Bootloader、Linux内核移植和设备驱动;上层应用,包括Linux应用、Qt界面、网络通信和协议栈。经常有人问"应用层开发是不是嵌入式",我的答案很明确:算,而且现在需求量非常大。嵌入式系统本身就是一个软硬件结合的完整系统,上层应用同样是系统的一部分,只是离芯片的寄存器远了一点。区别在于,如果你只写应用,不懂驱动、不懂中断、不懂内存映射,那遇到性能问题会抓瞎;如果你只写驱动,不懂应用怎么调,调试效率也会很低。所以四年规划的正确思路不是把某一层钻死,而是从底层起步,向上打通。
1.2 芯片方向不止是"做芯片"
芯片方向的岗位比大多数人想象得宽。真正做芯片设计(前端RTL设计)和验证(UVM验证)的门槛很高,通常要求硕士起步,本科直接投这些岗位确实比较吃亏。但芯片行业还有一条同样重要的链条:芯片测试、芯片应用(AE/FAE)、硬件参考设计、电源芯片/接口芯片的原厂支持,以及IC后端里的版图设计、时序分析。本科阶段想进入这个圈子,比较现实的目标有两条:一是走"芯片测试与硬件应用"路线,进芯片原厂或方案公司做测试和硬件支持;二是走"数字IC设计"路线,读研深造,项目尽量选FPGA和SoC方向。两条路线都需要一个共通的基本功:会读芯片数据手册(Datasheet),能看懂引脚功能图、参考电路图和工作时序。别看这个要求听起来基础,实际面试里能把4056A充电芯片、8205双MOS管保护电路讲明白的本科生,就已经能干掉一大批人了。
1.3 用一个表格给四年做目标拆解
先列一张总表,后面每个阶段再展开讲。这张表的核心逻辑是:大一大二压缩基础课,大三分叉,大四出结果。
| 时间阶段 | 嵌入式主线 | 芯片方向主线 | 阶段输出物 |
|---|---|---|---|
| 大一 | C语言、计算机基础、数字电路 | C语言、Verilog语法入门、模拟/数字电路基础 | 能独立写三百行左右的小程序,看懂原理图和真值表 |
| 大二 | STM32、常用通信协议、PCB基础 | 数电进阶、Verilog玩FPGA、芯片规格书研读 | 一个单片机完整项目,一张自己画的PCB |
| 大三 | 嵌入式Linux、内核驱动、开源项目 | SoC启动流程、芯片测试基础、硬件应用项目 | 一个能写进简历的Linux或芯片应用项目 |
| 大四 | 面试八股文、实习、毕设 | 针对性投递芯片测试/设计实习,准备考研 | 秋招offer或考研录取通知书 |
这张表看着简单,但大部分电子信息专业学生的真实状态是:大一学完C语言就扔了,大二学完电路分析就忘了,大三发现啥项目都没做过,然后大四开始慌张。所以下面每一章都按这张表展开,你就知道每个学期该把精力放在哪里。
2. 大一到大二:决定下限的两年,把地基打牢
2.1 C语言与数字电路,怎样才算过关
先说C语言。电子信息专业的C语言课普遍只有一学期,讲完指针和结构体就期末考了,但你去面嵌入式岗位,面试官绝不会只问语法。他大概率会掏出一些嵌入式C的经典问题:指针和数组的区别、内存四区、结构体字节对齐、函数指针怎么用、volatile关键字是干嘛的、局部变量和全局变量的生命周期。这些就决定了你后续能不能顺利操作寄存器、写驱动、看懂内核源码。所以大一的C语言不算过关,至少要自己额外补三块:一是把指针和内存模型吃透;二是把位运算练熟,因为单片机寄存器操作全是与或非移位;三是能自己实现一个单链表,因为底层开发和面试八成会问链表。
数字电路同样重要。组合逻辑、时序逻辑、触发器、计数器、译码器,这些不只是考试题,更是你以后看芯片内部框图和时序图的基础。我见过很多同学到了大三还是只会看芯片引脚标号,完全不知道某个引脚内部为什么需要上拉电阻、为什么时钟信号要关注建立时间和保持时间,问题都出在数电基础上。大二阶段建议配合Multisim或ModelSim做仿真,条件允许的话用一块入门级FPGA开发板把数码管扫描、流水灯、UART收发跑一遍。这样到了大三,无论你走嵌入式还是芯片方向,都不会因为"电路看不懂"而卡住。
2.2 从点亮一颗LED到吃透STM32:单片机入门的完整路径
大二这年,嵌入式方向最核心的任务就是搞定一块主流MCU。目前最适合电子信息本科生入门的还是STM32,具体型号从F103到F407都行,关键是生态最成熟,遇到问题一搜就能找到原因。但注意,别贪多,一块板子和一套完整的学习路径比弄十块板子重要。
开发环境这块,Windows上用Keil5为主。很多人卡在"芯片包"装不上,实际就两步:先装MDK本身,然后安装对应的STM32芯片支持包(PACK)。推荐离线包方式,从官网把STM32F1/F4的PACK文件下载下来,在MDK里双击即可导入;安装完以后,新建工程时才能选到对应型号。如果这一步报错"Missing Device",基本都是PACK没装好或版本不对,重装一下对应版本就好。
路径上我建议按这条顺序走:
- 先学GPIO输出,点亮一颗LED,理解时钟使能和寄存器/库函数的对应关系。
- 再学GPIO输入和外部中断,做按键点灯和按键控制LED状态。
- 然后学定时器,做PWM呼吸灯、输入捕获测频率。
- 再学串口UART,能往电脑发数据、接收指令。
- 最后学ADC采集、I2C读取传感器数据、SPI驱动屏幕模块。
走到第五步,你已经够资格参加蓝桥杯嵌入式这类比赛了。蓝桥杯的省赛试题很多就是围绕GPIO、按键、定时器PWM、串口、ADC、I2C传感器这几个模块出题,第16届省赛也不例外。我建议能力允许的情况下参加一到两次比赛,原因很实际:比赛会强迫你抛开"照着教程接线"的舒适区,自己看题目、查芯片手册、分配引脚、排查故障。哪怕没拿奖,这个"自己搞定一块板子"的过程比很多网课都值。唯一要注意的是别沉迷比赛套路成了"只会填模板"的人,比赛结束就该往更深的Linux方向走。
2.3 嵌入式5种通信协议,照着这个思路学不迷路
嵌入式系统里,通信协议就是器件之间交流的语言。最常用的5种分别是UART、SPI、I2C、CAN和USB。很多人一上来就背协议细节,概念背得滚瓜烂熟,一到真调不通就不知道从哪查起。我的建议是每个协议都从四个维度去学:物理层接线、数据格式、时序图、适用场景。
- UART:点对点异步串行通信,只需要TX、RX两根线,速度不高但简单通用。调试时最坑的点就是TX和RX接反、两边波特率不一致、共地漏了。初学阶段一定要用逻辑分析仪或示波器看波形,把波特率和数据位对上台,才叫真会。
- SPI:同步全双工,接SCK、MOSI、MISO、片选CS。特点是速度快、适合屏幕、Flash、SD卡等。注意不同芯片的极性极性(CPOL/CPHA)从0到3四种模式,很多人调不通就是主从模式没对上。
- I2C:两根线SCL和SDA,地址寻址、多设备总线,支持总线挂多个器件。学习重点是起始条件、停止条件、应答位,还有I2C的7位/10位地址和设备地址偏移问题。很多传感器(温湿度、加速度计)都用它。
- CAN:差分两线,抗干扰强,汽车和工业控制里大量使用。难点是报文ID仲裁、位定时、错误处理。你以后做车载嵌入式,CAN是躲不开的。
- USB:协议相对复杂,包含设备枚举、端点传输、描述符等。本科生没必要一开始就写USB驱动,但应该能看懂USB转串口芯片的原理,并能用上位机工具收发数据。
学这5种协议,别只对着概念看,最好的办法是STM32分别接一个I2C传感器、一个SPI屏幕、一个USB转串口模块,再拿CAN收发器做两个板子互联。调试工具优先逻辑分析仪,便宜、直观,能看到时序波形。
2.4 电源芯片与看门狗,硬件阅读能力的第一次实战
嵌入式方向不只写代码,硬件阅读能力同样要训练。大二阶段我推荐精读两类芯片手册:一类是电源类芯片,另一类是看门狗类芯片。先看电源芯片,因为每一个嵌入式系统都离不开电源。就拿8205芯片来说,它本质是一颗双N沟道MOS管芯片,最常见的应用就是锂电池保护电路;它的引脚功能图看起来简单,S1/G1/S2/G2再加两个脚,但你要能解释清楚为什么电池保护板要用它做放电和过充保护。再看4056A,这是一颗线性锂电池充电芯片,引脚里最重要的是PROG编程引脚,充电电流由该引脚接地电阻决定。如果你能自己画出4056A电路图并算出电阻值,说明你已经具备基本硬件设计阅读能力。
看门狗芯片也很典型,比如MAX706这类,解决的是MCU程序跑飞后自动复位的问题。这类芯片的引脚通常包括MR手动复位、WDO喂狗输出、RESET复位输出。学习重点不是记住引脚,而是理解"喂狗时序":MCU必须在规定时间窗口内翻转喂狗引脚,否则看门狗芯片输出复位信号。以后做嵌入式Linux,你还会遇到系统级看门狗,原理是相通的。
3. 大三:项目实战与方向分化,决定上限的一年
3.1 嵌入式Linux开发,为什么建议直接用Ubuntu
大三嵌入式方向的第一道分水岭,就是从裸机单片机转向嵌入式Linux。很多同学问"嵌入式Linux开发需要在Ubuntu下开发吗",我直接用项目现场回答你:必须。因为Linux环境下有完整的GNU工具链,编译、链接、Makefile、内核配置、设备树编译这些操作在Windows下很别扭;而且你想看懂开源项目和内核源码,几乎都是在Linux生态里完成的。但这不是说你要把Windows彻底扔掉,很多人还是在校生,电脑要用来写文档、写MATLAB、做Word排版。我的建议是Windows+虚拟机装Ubuntu,或者直接上WSL2。虚拟机推荐按Ubuntu 20.04/22.04 LTS来装,分配4核8G以上资源;WSL2更轻量,适合习惯命令行的同学。
学习路线按这个顺序走,顺序很重要:
- Linux基础命令、文件系统、权限管理,两周内过一遍。
- Linux C编程环境,学文件IO、进程/线程、socket网络编程。
- 交叉编译工具链,编译一个HelloWorld到ARM板子上跑通。
- U-Boot启动流程、Linux内核配置与编译、根文件系统制作。
- 字符设备驱动入门,写一个LED驱动和按键驱动,理解设备树、platform总线。
走到第5步,你已经能脱离开发板厂家给的现成镜像,自己从零把一个Linux跑起来。这一步在面试里的分量比任何简历吹嘘都重。顺带提一下,嵌入式Linux忘记密码这个场景很常见:板子root密码忘了,不用刷机,在U-Boot里进入紧急模式或者用内核参数指定init=/bin/bash把文件系统挂起来改密码即可。这种小细节平时注意积累,复试或面试时往往能让人高看你一眼。
3.2 内核源码、内存映射与Cache,别被大词吓住
很多同学一听"内核源码"就发怵,觉得那是大佬才配看的东西。我自己的经验是,内核学习要分层,千万别一上来就从头到尾读Linux源码。正确姿势是"问题导向":先跑起来一个驱动,再定位到它涉及的子系统,再顺着具体函数去阅读代码。比如你写一个GPIO LED驱动,你会碰到gpiolib框架和pinctrl子系统,这时候去读这些子系统的核心代码,比从内存管理开始读要有效得多。
内存映射和Cache一致性这两个概念,是笔试面试的绝对高频点。通俗地说,CPU访问外设或DMA缓冲区时,存在一个"地址映射"的问题:物理地址、虚拟地址、总线地址三者的转换关系。Cortex-A系列芯片有MMU,CPU看到的是虚拟地址,所以驱动里才会出现remap、ioremap这类函数。Cache一致性问题就是CPU缓存里缓存了数据,但DMA把外部数据写到了内存,两边数据不一样了,要按需flush。我曾经就在调试OMAP-L137这颗DSP时,为一块共享内存的同步问题卡了整整一天,最后就是Cache未刷新导致的。本科阶段你不需要精通这种复杂芯片的完整内存映射,但至少要把"虚拟地址/物理地址/MMU/Cache line"这几个词的含义彻底搞明白,面试才接得住问题。
另外,嵌入式GUI方向的同学会碰到"Qt包含Wayland"这类问题。简单说,Wayland是Linux下的显示协议/合成器,Qt应用要在嵌入式设备上显示,底层要么走X11、要么走Wayland,现在新方案大多默认走Wayland。这不算是驱动开发核心,但如果你面试的是应用层嵌入式岗位,能说出来"我用Qt在Wayland环境下做过xxx"会非常加分。
3.3 芯片方向怎么从"看引脚图"起步,走向SoC
芯片方向的同学,大三也不能光抱着STM32玩,要开始接触真实的芯片文档体系。这里有一条进阶路线,我把它叫做"从元件到系统":
第一步,继续精读芯片手册。大一到大二看的8205、4056A、54331这些电源芯片只算热身,大三要扩展到接口芯片、音视频芯片、SOC芯片。比如XS9922B是一颗MIPI转LVDS/RGB的芯片,你在做屏幕驱动或摄像头调试时会用到;它的硬件设计用户指南里会有参考电路、时序参数、PCB布局要求。学会按这类文档去设计小电路,才算真正开始做硬件。
第二步,理解SoC启动流程。芯片上电后不是直接跑Linux的,要经历BootROM、SPL/ATF、U-Boot、Kernel这样的多级启动链。你手上如果有一块RK3588开发板,它的官方TRM和技术手册会把启动流程写得很详细,建议完整过一遍。为什么要懂这个?因为你在做板级调试时,如果板子起不来,要先判断卡在哪个阶段:是电源没起来、DDR初始化失败、U-Boot崩了还是内核panic。这个排查思路,比会背启动流程更重要。
第三步,摸一下芯片设计与验证工具链。Verilog至少要能看懂并写简单模块,用Vivado或Quartus跑一个UART或FIFO;再学一下仿真工具的使用,会看仿真波形;如果以后想走数字IC验证,SystemVerilog和UVM是后面研究生的重头戏。芯片后端方面,了解综合、布局布线、时序收敛的概念即可,不是本科阶段能深入的内容。芯片测试方向则多关注ATE测试、bench测试、信号完整性基本概念。
关于芯片选型,提醒一句:别被"天梯图"带偏。平板芯片天梯图、手机芯片天梯图这种东西只是市场营销产物,真正的工程师选型看的是CPU算力、GPU、内存带宽、外设接口、功耗、供货周期和价格。RK3588为什么在国产方案里使用率高?因为它的接口丰富度、8K能力、性价比和软件生态综合得分很高,而不是因为它"排名靠前"。
3.4 能写进简历的两个项目,怎么挑、怎么做
到了大三,项目经验是简历的重头戏。我强烈建议不要堆数量,把两个项目做透就够了。嵌入式方向,第一个项目建议做带通信的MCU系统:比如STM32采集温湿度/光照数据,通过UART或ESP32转WiFi上报到云平台,手机端能看到数据。这个项目覆盖了传感器、ADC、协议、WiFi模组、云通信,面试时可以从硬件原理说到软件架构,很有层次。第二个项目建议做嵌入式Linux方向:比如在RK3588或树莓派上写一个字符设备驱动,控制LED或风扇,再把上层应用通过Qt做一个控制界面。这个项目能展示你对Linux驱动模型、设备树、应用编程的综合能力。
芯片方向的项目则可以选择FPGA实现一个简单处理器或者通信接口:比如Verilog实现一个SPI主控制器,挂在FPGA上驱动外部Flash,并用逻辑分析仪实测波形;或者做一个UART收发模块,性能和波形都说得清楚。项目不在高大上,在于你能否完整讲出:系统框图、关键模块设计、调试过程中遇到的最大难点、最后测量到的数据。我面实习生有个习惯,问一句"这个项目里你自己最得意的地方是什么"和"这个项目如果再给你一周,你想改成什么",这两句话基本能过滤掉八成伸手党。
4. 大四:考研、就业与面试,临门一脚怎么踢
4.1 电子信息考研,是不是必须?
这个问题没有标准答案,但我可以给一个比较实用的判断框架。第一,如果你目标明确是芯片设计岗(RTL设计、验证、后端),考研基本是必选项,而且尽量考集成电路或电子科学与技术方向,选择有流片资源和校企合作项目的实验室很重要。第二,如果你读研只是为了"缓一缓找工作",那要慎重,因为嵌入式行业更看重项目和实际技能,三年的研究生时光如果没在做实际课题,可能反而不如本科扎实做项目的同学好找工作。第三,电子信息考研热度确实高,竞争激烈,所以大三下学期就决定的话,时间上才来得及。如果决定就业,大三寒假的实习一定要抢,尤其是投"嵌入式软件开发"、"芯片测试工程师"、"硬件工程师"这些岗位,有大厂实习经验,秋招成功率会翻倍。
4.2 嵌入式面试八股文:高频考点清单
所谓"八股文",其实就是面试问答里的高频知识点,背熟不丢人,但不理解就背也是白搭。这里我整理一份针对嵌入式初级岗位的高频考点,基本覆盖了市面上70%以上的问题:
| 面试题方向 | 高频考点 | 应对思路 |
|---|---|---|
| C语言 | 指针、内存四区、结构体对齐、volatile、static作用 | 拿实际代码演示内存分布 |
| MCU基础 | 中断流程、中断嵌套、看门狗原理、NVIC优先级 | 结合STM32CubeMX配置讲 |
| 通信协议 | UART/SPI/I2C/CAN波形与时序、波特率误差 | 用逻辑分析仪截图说明 |
| Linux | U-Boot启动流程、内核启动阶段、设备树、rootfs制作 | 亲手过一遍完整的移植流程 |
| 驱动 | 字符设备架构、platform总线、中断下半部、并发控制 | 以LED/按键驱动为例 |
| 内存 | 内存映射汇总、MMU、Cache一致性、DMA | 举例说明实际踩坑过程 |
| 硬件基础 | 电源芯片选型、看门狗芯片、元器件封装、万用表/示波器使用 | 讲清一个真实电路板调试经历 |
注意一点:面试官从不说"你背得很好",但从会问"你实际遇到过什么问题"。所以每条考点都要准备一个小故事,比如"I2C读不到ACK,排查到最后发现SDA被拉死",这就是比标准答案值钱得多的话。嵌入式八股文这东西我自己的态度是:当成自测清单,而不是学习路径。你花一周把清单背下来,不如花一周真正在板子上调通一个模块。
4.3 芯片测试与硬件面试,更看重什么
如果你走芯片应用或芯片测试方向,面试画风不太一样,更问工程细节。常见问题包括:你给我画一下这个8205充电保护电路的工作路径;4056A的PROG引脚电阻怎么算充电电流;54331的反馈电阻分压怎么设置输出电压;一个LDO和一个Buck芯片怎么选型;看门狗芯片的喂狗窗口怎么设计。这些问题的本质是考察你有没有真正读过数据手册、算过参数、调过电路。
芯片测试岗位还会问测试向量、ATE测试、良率概念、DFT测试链是什么。这些概念大四上通过一门在线课程或者实习了解即可,不需要精通。但一个基本功必须练:拿着万用表和示波器量一块真实板子,准确说出每个电源轨电压、时钟波形频率、I2C波形上的ACK/NACK。招聘方特别看中你"敢不敢拆板子、会不会拿仪器验证"的工程师气质。
4.4 项目经历怎么讲得深,而不是背流程
很多人写到这已经准备好简历了,但面试表达还是拉胯,原因在于把项目讲成了"报菜名":第一步做什么、第二步做什么、第三步用什么芯片。正确讲法是按"背景-难点-方案-验证"四段式来讲,重点突出"我自己做的部分"和"我踩过的坑"。比如你做了ESP32联网温湿度计,不要只讲"我用了ESP32和DHT11",要讲"DHT11时序很敏感,第一次读取总是超时,我用逻辑分析仪抓到波形后发现初始化的上拉时间不够,调整后稳定读取"。这种表达既展示了硬件调试能力,也展示了问题定位思路。
面试官还特别喜欢追问"你怎么验证你的系统满不满足要求",所以每个项目必须准备具体测试数据:比如通信误码率、响应延迟、温漂范围、功耗数据。哪怕数据不完美,也比没有强。我面试时会直接问"你测试了几组数据?条件是什么?",能说出"25℃室温和10米距离下测试,丢包率0.5%"这种话的人,项目含金量立刻上来了。
5. 避坑指南:这些年我见的翻车现场
5.1 只玩开发板不读数据手册,等于白学
我见过太多学弟学妹,玩了两年开发板,资料全是淘宝商家给的例程,能跑灯能显示温度,但一换型号、一换芯片就完全不会了。原因只有一个:没读过原始数据手册。数据手册是芯片的"用户说明书",里面有时序参数、寄存器描述、电气特性、参考电路。大学期间至少要精读3-5份完整的数据手册,别怕英文,大部分手册英文词汇量并不大,越读越熟练。比如你说自己用过STM32,那就该打开对应型号的Reference Manual,把GPIO、RCC、USART这几章的寄存器配置逻辑读明白。读手册不是从第一页看到最后一页,而是带着问题去查,查完做笔记,效果最好。
5.2 科普视频看多了,容易眼高手低
B站和短视频上有很多嵌入式科普,看多了感觉什么都会了。但真正动手时会发现:Keil5的芯片包装了三天没搞定,USB转串口驱动装不上,I2C总线上拉电阻没焊接,示波器探头不会接地。我的建议是把视频当导航,不当驾驶。凡是想学的知识点,必须落实到"我能跑、能测、能复现"。你可以给自己定一个铁律:每看一个视频教程,必须自己在板子上实现一遍,并且写出图文笔记。大量刷视频的虚假满足感,是荒废时间最隐蔽的方式。
5.3 跨平台开发的环境坑与小问题速查表
嵌入式开发环境里,十个新手有九个栽在环境配置上。这里放一份我自己的速查表,都是我实际踩过或带新人时反复遇到的:
- Keil5安装STM32芯片包失败:优先用离线PACK包双击导入,不要只靠在线下载;常见的"Missing Device"就是PACK没装对版本。
- STM32下载程序失败/无法识别:检查BOOT0引脚状态、USB转串口驱动、接线是否交叉;多次失败先按复位键再下载。
- Ubuntu忘记密码:重启进GRUB菜单,按e编辑内核启动项,在linux行末加init=/bin/bash,进入紧急模式后用passwd改密码,再正常重启。
- 串口提示权限不足:执行 sudo usermod -aG dialout $USER,注销重登即可。
- Windows下用不了Linux命令:用WSL2或Git Bash,别硬在Windows里拼一条完整编译命令。
- 用虚拟机共享文件夹失败:在VMware/VirtualBox里重装open-vm-tools或guest-additions,设置挂载路径后多半能解决。
- 开发板ping不通电脑:先检查宿主机防火墙、网络适配器桥接模式、静态IP配置,再抓包排查。
- I2C设备无应答:重点查设备地址是否偏移、上拉电阻值、有没有共地、波形上ACK位是否为低。
这些小坑单个看都不大,但在真实项目里会消耗大量时间。平时养成记排查笔记的习惯,攒一个自己的"故障库",比任何经验分享都适合你自己。
5.4 正确看待"嵌入式开源项目"的价值
大三以后一定要学会看开源项目。嵌入式领域的开源项目很多,包括各种RTOS、传感器驱动库、板级支持包、Linux内核驱动示例。看开源项目不是把代码clone下来然后跑通就完事,要带着改造的目标去读:这个驱动的probe函数做了什么?为什么这里要加锁?这个DTS节点的compatible怎么和驱动匹配的?如果你想做点有名堂的,可以参与一些小众开源项目的issue修复,或者给开源SDK补一个文档,这也是简历里很加分的点。但提醒一句,别为了刷开源贡献记而已强行提PR,面试官也会看活跃度和质量,不是看数量。
最后再说一句掏心窝的
四年规划这东西,说到底是帮你把有限的时间花在刀刃上。我自己带过的学生里,最可惜的不是基础差的,而是那种大二买了板子、大三报了班、最后却因为没留下任何可复现的项目记录而面试惨淡的人。所以不管你选嵌入式还是芯片方向,请一定坚持做一件事:每完成一个模块、调试通一个功能,就写一份技术记录,图片、波形、代码、心得都要。这份记录既是你的复习资料,也是你将来面试时的底气。电子信息这行确实累,需要持续学新东西,但反过来,它也是最讲投入产出、最靠能力说话的领域之一。你在大一大二打下的C语言和数电基础,到大三大四会像复利一样回报你;你在项目里踩过的每一个坑,到面试桌上都会变成你的筹码。按这个规划走,不敢保证你一定进大厂,但至少毕业时你不会两手空空地站在岔路口发愣。