嵌入式软件开发面试常见问题(嵌入式开发秋招面试题)
嵌入式软件开发面试常见问题(嵌入式开发秋招面试题)总线的初始化、启动信号、应答信号、停止信号、写一个字节、读一个字节。单片机在模拟I2C通信时,需要写出如下关键的程序:Cache:位于主存和嵌入式微处理器内核之间,存放的是最近一段时间微处理器使用最多的程序代码和数据。它的主要目标是减小存储器给微处理器内核造成的存储器访问瓶颈,使处理速度更快。②请问51单片机如何模拟I2C总线通信?单片机模拟I2C总线通信,因为许多单片机没有I2C总线接口,如51单片机,但可以在单片机应用系统中通过软件模拟I2C总线的工作时序,在使用时,只需要正确调用各个函数就能方便地扩展I2C总线接口器件。
根据以往的嵌入式开发秋招面试经历,为大家整理了一些面试经常会遇到的题目,希望这些干货对大家面试有所帮助。干货直接码起!
①请简述嵌入式系统硬件层的组成?
硬件层:嵌入式微处理器、存储器、通用设备接口和I/O接口。
嵌入式核心模块=微处理器+电源电路+时钟电路+存储器
Cache:位于主存和嵌入式微处理器内核之间,存放的是最近一段时间微处理器使用最多的程序代码和数据。它的主要目标是减小存储器给微处理器内核造成的存储器访问瓶颈,使处理速度更快。
②请问51单片机如何模拟I2C总线通信?
单片机模拟I2C总线通信,因为许多单片机没有I2C总线接口,如51单片机,但可以在单片机应用系统中通过软件模拟I2C总线的工作时序,在使用时,只需要正确调用各个函数就能方便地扩展I2C总线接口器件。
单片机在模拟I2C通信时,需要写出如下关键的程序:
总线的初始化、启动信号、应答信号、停止信号、写一个字节、读一个字节。
可能很多人不知道嵌入式物联网要学什么……我来分享一波吧。也是我看了很多人的解读,自己整理的。当时小美老师的分享看的最多,感兴趣的也可以看一看:
HTTPS://www.bilibili.com/video/BV1uu411U7ni?share_source=copy_web
要是不想费劲自己去搜索整理资料的话,也可以直接加我分享你我整理好的,无偿。一键三连后来领取哈。
点击这里找小助理0元领取:嵌入式物联网学习资料(头条)
③请用宏定义写出swap(x,y)函数。
#define swap(x y)\
x = x y;\
y = x - y;\
x = x - y;
④从在浏览器地址栏中输入http://www.baidu.com到看到百度首页,都涉及到哪些网络协议?
TCP/IP五层模型中网络层及以上用到的协议:
1.应用层:HTTP、DNS、HTTPS
2.传输层:TCP、UDP
3.网络层:IP、ARP
题外话:这里突然意识到,知道C和C 的区别其实也挺重要的,别被乱填充内容的公众号内容给坑了!实际的嵌入式开发里,底层,百分之九十五以上都是用C的,极少数C 、rust等。
补充那么几个没提到的东西:
sizeof(char *)或者其他什么*的大小,基础过关应该都知道32位机器上是4,51项目上面跑是1,这里注意一下不要自作聪明觉得64位机器肯定是8,要看编译器的。
让你写出来一个类似于(*(void(*fun)(void))0)()的东西的含义,个人感觉挺NT的。。不过嵌入式C编程对回调函数也就是函数指针有考察,我还真遇到过。
汇编,现在应该不会考查得很难,我遇到过两次,一次是一个做51的小厂商让我用汇编写一个延时入口(基本白送),一次是linux岗位让我分析一段代码作用,一般来说难度都很低,不会为难你。还是了解一些基础吧,毕竟这种东西的开发经历,真的不可强求,我个人不建议深钻。
volatile关键词和const能不能同时修饰同一个变量?这个问题我印象很深,不明所以。。。反正就是可以,完全没有看懂这俩会有啥冲突-_-||
位操作相关,具体的题目记不太清了,大概就是让你强行手撸二进制的感觉,细心点都没啥问题。