嵌入式学习一些小建议和学习参考资料(个人推荐)

可能不太全,后续想到会慢慢补充 !!

1、笔试题

嵌入式开发笔试题主要由三部分单选、多选和编程题(一般都是1-2道编程)

对于编程题,一般嵌入式岗位的编程题都是中等难度以下(除了华为、美团、中兴等一些大厂的嵌入式和软开难度相当),刷题推荐代码随想录,刷2遍应该可以应付嵌入式开发百分之90的算法题;虽然嵌入式开发主要用C,但是编程题用C++可能更加方便,C++的数据结构要熟练使用vector、string、栈和队列及相关成员函数;

嵌入式开发的选择题语言主要考C和C++(一些公司会掺进去python、java和mysql不太理解),经常考数组、指针、结构体和联合体内存对齐、字符和字符串;C++就是三大特性封装、继承和多态(重载重写和虚函数),友元函数。网络编程经常考tcp和udp的区别,7层模型各个层的相关协议和应用。操作系统考linux进程间通信方式,进程和线程的区别与联系,一些常用的linux终端命令和系统调用API接口,虚拟内存,MMU,cache等。

2、面试

准备面试题最高效的方式是看面试公司的面经,去牛客或者CSDN搜索对应岗位的面经,根据多篇面经去总结常问的问题,不然单纯的去背八股效率过低。

一般问的最频繁的问题就是:

(1)几种通信协议的差别,这个可以在我专栏中有总结。

(2)实时操作系统的相关问题任务调度原理、任务栈分配、内存管理、任务间通信、互斥访问全局变量(互斥量和信号量区别)、优先级反转等等。

(3)单片机如stm32的启动流程和三种启动方式,内存分布和加载,片上资源,Keil-MDK编译输出的:Code-data,RO-data,RW-data,ZI-data,GPIO的工作模式(开漏和推挽的电路原理和应用场景),处理器发生中断或者异常要进行哪些动作,16个通用寄存器和CPSR、SPSR。

(4)C和C++的八股文和笔试高度重合,指针在嵌入式中的使用场景,指针数组、数组指针、指针函数、函数指针,内存大小端,结构体对齐(如何1字节对齐)。

(5)如果简历写了解Linux,linux进程和线程的区别,内核空间和用户空间,虚拟内存,mmu,页表,linux内存管理(伙伴系统和slab分配器),进程调度(调度时机和调度操作,调度策略CFS,调度类),进程间通信方式,互斥锁和自旋锁的区别。

(6)armv8架构,异常等级,GIC中断控制器状态,异常向量表,处理器工作模式和指令集,MMU的组成,页表地址存储位置,内存屏障,冷启动和热启动等

3、项目和实习

个人感觉一段实习经历要比做项目重要的多,前提是实习时间至少在3个月以上,且真正加入到项目的开方中去,如果是测试可能相对差一些,毕竟在学校参与的项目和公司做的产品在功能和要求上差别很大。

如果没有实习机会,嵌入式项目最好还是加入实时操作系统rtos,但是不要硬加,不然有点杀鸡用牛刀,本来任务就很简单,这时加上实时操作系统毫无意义,还看到有的同学用linux开发板去实现一个51都可以做的事情,会起反作用,对于实时操作系统的学习项目可以参考专栏的扫地机器人或者网上的四旋翼无人机都是采用freertos,功能相对复杂的系统。

4、学习资料推荐

对于入门学习嵌入式基础外设和freertos都可以跟着正点原子和韦东山两家的视频和代码。后期学习资料推荐如下:

(1)ARM体系结构与编程第2版

主要讲ARM-V7之前的架构,包括寄存器介绍、支持的指令集、存储系统、异常与中断处理、内联汇编、链接器和分散加载等,这些可能是在学习过程中忽略的重要知识点。

(2)程序员的自我修养--链接、装载与库

主要讲解了程序的编译和链接过程,可执行文件和目标文件格式,符号处理、重定位和地址分配,进程和可执行文件的虚拟地址映射,如何动态链接和动态链接时的相关问题。

(3)奔跑吧Linux内核——基于Linux 4.x内核源代码问题分析

这本书基于Linux4.x内核源码讲解了内核中的内存管理(物理页面、伙伴系统、slab分配器、缺页中断等)、进程管理(进程创建、调度、负载均衡)、并发与同步(进程线程间通信)和中断管理(中断上、下半部)四个模块。适合有一定Linux基础的同学学习。

(4)Armv8&armv9架构入门指南(cortex-A系列)

主要讲解ARMv8‑A 架构和处理器,寄存器、异常处理、cache、mmu、指令集、MPCore等。

#硬件人的春招/实习flag##通信硬件人笔面经互助##通信硬件人社招/春招/实习投递现状#
嵌入式学习免费专栏 文章被收录于专栏

分享嵌入式软件开发相关资料,专栏永久免费,嵌入式学习技术交流

全部评论
收获颇多,谢谢大佬
点赞
送花
回复
分享
发布于 04-21 17:01 陕西
学习了
点赞
送花
回复
分享
发布于 04-21 18:29 江苏
滴滴
校招火热招聘中
官网直投
点赞
送花
回复
分享
发布于 04-21 18:31 陕西
受教了,感谢大佬
点赞
送花
回复
分享
发布于 04-21 23:47 美国
内容好多啊😭
点赞
送花
回复
分享
发布于 04-23 21:27 辽宁
嵌入式还考选择题么
点赞
送花
回复
分享
发布于 05-16 13:37 江苏

相关推荐

如题 二战科大失败后滚去找工作了 记录下历程。先看了看企业招聘要求 发现java多 遂突击java 半个月学了 java spring cloud redis mysql linux web 看了黑马头条 照着水了个项目 来到3月底 开投 一汽大众 成都后端 一面挂 浪潮 二面挂 星融元 三面挂 (基本都是问我gap 直接寄)这时对互联网以及java岗卷的程度感到无语 八股只能回答上来7成 项目也是被各种场景吊打 因为我都没做过(15天时间太短了) 然后就是抑郁 这时已经不想找了 想着三战并且回家考察了一下自家生意 想着在小县城混一辈子算了(我爸很同意 我妈不赞成) 回到学校家属区 看了会考研题 又感觉三战风险太高 不如一边工作一边战 就看了看其他岗位 突然发现云计算工程师(我毕设就是云计算虚拟化 其实发现后来就是运维) 用了不到10天学了 docker openstack k8s devops 水了个项目 加上毕设项目 终于有三个项目了 开投!电信云计算 现在才发面试  帆软 一面挂(笔试是真难 面试毫无八股 全是场景还有拓展题 记得第一个问题上来就让我组一个公共ip 面向公司所有人 问我怎么组 怎么保证ip的各种…性) 又投了几家 忘了都是面试问到gap直接寄 遂又抑郁 和朋友周末打瓦散心 想着没脾气找不到工作只能三战了这时本科两个去年工作的舍友给我指出明路 说我想搞软件可以走软硬结合的路子 搞嵌入式啊 一个给我发来正点原子stm32开发教程 让我跟着学 搞几个项目 学了3 4天 水了三个项目 小车 智能家居 还有本科时一个fpga的花朵识别 开投!这次效果出奇好 可能这就是科班的魅力 第一天投了几个公司 第二天就一个hr电话了解基本情况 一个加微信约面试 还有几个基本都发了笔试 第四天拿到了第一个嵌入式offer 在青岛 12 x 13 但离谱的是hr谈薪的时才说是单休 我说太离谱了 他说可以向领导反映调高点  过了一天 一个国企负责人打电话 居然是西电学长 问了我基本情况 然后就是笔试面试 属于运气比较好 发了offer 8x16-18 包吃住还是国企 还有直系学长带 属于是尘埃落定了 就拒掉了一些之前的面试 算是运气比较好的结局了 终于能好好睡觉了
点赞 评论 收藏
转发
35 183 评论
分享
牛客网
牛客企业服务