前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小米2021春招面试

小米2021春招面试

作者头像
Jasonangel
发布2021-05-28 10:41:54
8740
发布2021-05-28 10:41:54
举报

来源于读者投稿,作者love_you。

投递岗位:嵌入式软件工程师-BSP方向

面试时间:2021.03.29

岗位描述:

一面(30分钟)

主要问你简历自己写的东西。

1、做一个英文自我介绍。

2、uboot启动流程?

回答:从uboot如何引导内核启动,kernel启动时怎么挂载根文件系统从头到尾说了一下。

3、面试官说通过了,进入下一轮。

二面(25分钟)

1、驱动下半部分需要做些什么?

2、C语言和C++有什么区别?比如static,malloc和new。

3、C++的三大特征说一下。

4、你C++学的怎么样?

回答:主要用C语言,不太了解C++。

5、问简历中项目实现框架和细节。

补充

关于嵌入式方向“驱动工程师”和“BSP工程师”的区别,做了一点总结,欢迎补充。

BSP即Board Support Package,板级支持包。它来源于嵌入式操作系统与硬件无关的设计思想,操作系统被设计为运行在虚拟的硬件平台上。对于具体的硬件平台,与硬件相关的代码都被封装在BSP中,由BSP向上提供虚拟的硬件平台,BSP与操作系统通过定义好的接口进行交互。BSP是所有与硬件相关的代码体的集合。

BSP在嵌入式系统中的角色,很相似于在PC系统中的BIOS和驱动程序的地位。

BSP就看成BIOS+驱动或者bootloader+驱动。

BSP和驱动的区别:bsp还包括了bootloader,或者bsp是包含了cpu、电源管理这些比驱动更深层次的硬件支持包。

1、BSP是一般是芯片原厂提供的。驱动是自己写的,比如写IIC协议驱动一个EEPROM,写一些SPI、USB驱动等。

2、bsp是保证os启动前所作的必须工作,包括初始化工作,引导os启动起来,也包括一些用户的配置信息。os启动后,可以认为bsp已经不再起作用了,os会调相应的驱动来重新初始化系统。驱动可以认为是os内核中的一部分。

3、 BSP是嵌入式系统中介于硬件平台和操作系统之间的中间层软件,主要目的是为了屏蔽底层硬件的多样性,根据操作系统的要求完成对硬件的直接操作,向操作系统提供底层硬件信息并最终启动操作系统。BSP具有硬件相关性和操作系统相关性的特点,其主要作用包括:

(1)初始化底层硬件,为操作系统提供底层硬件信息;

(2)初始化相关硬件设备,主要是存储设备、通信设备;

(3)检测系统硬件是否正常;

(4)加载操作系统并启动系统运行。

4、BSP也称为硬件抽象层HAL或者中间层。

它将系统上层软件和底层硬件分离开来,使系统上层软件开发人员无需关系底层硬件的具体情况,根据BSP层提供的接口开发即可。

BSP是相对于操作系统而言的,不同的操作系统有不同定义形式的BSP,要求BSP所实现的功能也有所不同。

在嵌入式Linux系统中,主要是初始化底层硬件并引导操作系统;同时,BSP又是和硬件相关的,还要考虑对硬件的初始化操作。这些初始化操作主要是对CPU、内存、中断等相关的寄存器及协处理器进行正确的配置。

在不同的开发阶段,因为核心和文件系统所处的位置不同,BSP所要完成的工 作也有所不同;在开发调试阶段,BSP要能够与主机通信并从主机下载核心;在目标产品中,BSP要能够从非易失存储设备中加载核心。

更多问题请参看以下文章:

嵌入式笔试面试题目系列(汇总)

·················· END ··················

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式Linux系统开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一面(30分钟)
  • 二面(25分钟)
  • 补充
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档