大厂面经:大疆嵌入式面试题及参考答案(4万字长文:持续更新)

嵌入式最全面试题-Offer直通车
专栏收录该内容
¥15.90
¥99.00
314 篇文章

目录

                  Linux 中断流程,谈谈你对中断上下文的理解

Linux schedule() 函数的原理和调用的时机

页表实现机制,分页的缺点?

介绍操作系统的多级反馈调度策略,时间片轮转,在项目中如何指定优先级来调度进程完成快速响应(nice 命令)

聊内存分配,进程内存分配,段页式存储,缺页中断,进程间通信的方式,为什么分用户空间和内核空间

详细说下进程间共享内存的分配,在哪个空间,读写速度怎么样,通信是否需要经过内核

实时操作系统的调度器设计细节?包括调度算法设计和上下文保存中的细节

一个操作系统中哪些地方会调用调度器?

一个信号量释放之后,在调度下一个线程的时候是如何选择的?

如何去评估一个操作系统的实时性是否满足要求?如何去测算中断响应时间?

MCU 上如何设计用户态和内核态?如何保障操作系统的安全性?

如果让你去开辟一个新的产品,你会想做什么?

平时做驱动外设的时候,有没有遇到过一些棘手的问题?如何解决的?

C++多态怎么理解?C++有哪些多态的典型例子?

C++了解吗?C++11 新特性用的多吗

C 语言字节对齐的规则,为什么要字节对齐?

C 语言程序运行时的内存分配

const 关键字的用法

copy_from_user 实现的原理?如果需要从内核中传递大量数据怎么办?

extern C 有什么用?为什么要和编译器声明 C 语言环境?C 语言环境和 C++有什么不同?

delete []和 delete 的区别?

C++为什么有指针还要引用?

线程切换是怎么设计的?

信号量、互斥量底层是怎么设计的?

内存管理是如何设计的?

中断管理是如何设计的?

你自己设计的 OS 相比于别人的,有哪些创新之处?

线程同步用过什么?

互斥锁注意过高低优先级翻转吗

自旋锁和互斥锁的区别,在中断中使用自旋锁要怎么避免死锁

U-cos 系统滴答时钟设置频率

多任务运行同步机制

能简单说一些你用过的 STM32 的一些芯片的配置吗?CPU 主频,Flash 和 RAM 分别都是多大的?

你在 STM32 上都做过哪些开发?

你开发过哪些驱动吗?

你了解整个 SPI 的通信过程吗?SPI 有几根线,分别是什么?你使用 SPI 的时候速率配置的是多少?

有使用过 DMA 吗?解释一下什么是 DMA?

SPI 有 4 种模式你知道是那 4 种模式吗?

你用过 GDB 调试吗?讲一讲常用命令。如果我编译报错,怎么定位错误位置,你知道 gdb 怎么进行多线程调试吗?

你知道回溯的概念吗?谈一谈栈回溯,采用 gdb 怎么调试?

在用户态开发中程序跑飞,出现段错误等情况,你通过什么方式去定位?

运行态的错误怎么调试?

对于一个无人机产品,基于目前市面上已有的产品,你还有什么新的设计想法?

如果要设计一个操作系统实现多线程,你会需要几个模块?

用过大疆哪些产品?RoboMaster S1

互斥量和信号量区别

项目中碰到的困难,怎么解决的。

无人机的未来(大疆产品优缺点)

对于临界区数据的处理,使用互斥锁和自己通过条件来判断,哪样更好,为什么?

上下文切换的时候系统做了些什么?

中断是如何产生的,具体的工作原理知不知道?

MMU 是什么东西?MMU 是如何实现虚拟内存和实际物理内存的切换的?

未初始化的全局变量放在什么地方?bss 段省的空间是什么空间?

说说 u-boot 启动流程。为什么 bootloader 要分两个阶段?

bootloader 第一个阶段为什么要足够的小?

对总线协议有哪些了解?I2C 和 SPI

I2C 的读写数据的步骤

虚拟地址如何转换成物理地址?MMU?

操作系统如何判断想要访问的物理地址是合法的还是非法的?

需要将所有的合法地址标记为合法的吗?

页表是如何初始化?

一个 ELF 文件加载到内存后,各个段的分布?

堆区和栈区之间还有什么区?

mmap 匿名页的映射?

mmap 返回的虚拟地址如何和具体文件关联起来?

gdb 使用过吗?

阅读过汇编代码吗?

c 语言函数的入参在汇编语言中是如何导入函数主体的?

用到的 STM32 芯片硬件有了解过吗?

STM32 中断控制器是什么?

对嵌入式开发有哪些了解?做了哪些准备?

FreeRTOS 的内存管理怎么实现的?

线程之间的通信方式?

FreeRTOS 任务抢占的机制

FreeRTOS 内存分配

未初始化的变量的初值是怎么样的?

static 变量的初始化在什么阶段?

一个程序从写完到运行起来需要经历什么阶段?

虚函数是用来干嘛的?虚函数机制怎么实现的?虚表指针在内存中的存放位置?智能指针用过吗?weak_ptr 是用来干嘛的?怎么保证用 weak_ptr 不会崩溃?

进程和线程的区别?


Linux 系统调用的过程,中间发生了什么?

系统调用是用户态程序与内核交互的一种方式。当用户态程序需要请求内核服务时,它会通过系统调用来完成。以下是系统调用的一般过程:

  1. 发起系统调用:

    • 用户态程序通过调用一个库函数(通常是 glibc 提供的)来发起系统调用。
    • 库函数负责设置好系统调用所需的参数,并通过特定的指令(如 syscall 或 int $0x80)跳转到内核态。
  2. 陷入内核:

    • CPU 从用户态切换到内核态,执行内核模式下的代码。
    • 内核检查系统调用号以及传递给它的参数。
  3. 执行系统调用处理例程:

    • 内核根据系统调用号找到对应的处理例程并执行。
    • 这些处理例程可能涉及文件操作、内存管理等底
大疆面试笔试一部分总结 *一面**,仔细询问笔试细节,并且挖深,被仔细询问了在笔试中用的bitmap算法,为何要用,有什么特点,怎么做的,然后抓住linux驱动开发项目追问细节,并引申,open/read/write等函数具体是怎么工作的,从用户态的系统调用闻到内核态的数据结构,基数树等,内存管理相关问到了linux系统中页缓存、缓存命中以及mmap相关的问题,比如两个大文件需要进行交互如何做,中断的上半部以及下半部等,为何要设置上半部和下半部,怎么做的,自旋锁和互斥锁的区别以及应用场景,如何实现一把自旋锁。 4.1k 阅读·3 点赞·8 收藏 阅读详情

相关推荐

【嵌入式面试实战】大疆嵌入式一面

内核根据线程的优先级和调度策略来确定下一个要执行的线程。内核维护一个调度队列,其中包含所有可运行(runnable)状态的线程。当一个CPU核心空闲时,内核从调度队列中选择最高优先级的线程,并将其分配给该核心。线程被放入正在运行(running)状态,并在该CPU上执行一段时间,直到发生某种事件(例如时间片用完、等待I/O、睡眠等)导致它进入阻塞(blocked)或睡眠(sleeping)状态。如果一个线程进入阻塞或睡眠状态,内核会将其移出运行队列,并选择另一个可运行的线程继续执行。

CodeAllen嵌入式 2087

《嵌入式最全面试题-Offer直通车》目录

嵌入式领域蓬勃发展,嵌入式工程师成为众多科技企业争抢的热门人才。如果你渴望在嵌入式面试中脱颖而出,成功斩获心仪的 offer,那么《嵌入式最全面试题 - Offer直通车》将是你的绝佳选择。本专栏是CSDN是热门专栏,100多篇文章,总字数过百万。每月新增订阅用户过百,现在是优惠价9.9元,后面要逐渐恢复原价,早订阅早受益。本专栏精心整理了众多超万字的精华内容,总计达数十万字的嵌入式面试题总结。涵盖从嵌入式基础知识到各大厂面试真题,从驱动开发到操作系统,从硬件到软件等各个方面。

大模型大数据攻城狮的专栏 8360

【项目43】基于LSTM实现股票价格预测

股票价格预测一直是量化投资领域的热门话题。记得我刚开始接触深度学习时,第一个尝试的实战项目就是股票预测。当时用的是简单的全连接网络,效果很一般。后来学习了LSTM,才真正感受到时序模型的强大之处。本项目将带你从零开始实现一个完整的LSTM股票预测系统。你将学会如何处理时序数据、构建LSTM模型、训练模型并进行预测。这个项目不仅能帮助你理解LSTM的工作原理,还能让你对金融时间序列分析有更深入的认识。

weixin_51988935的博客 1348

告别单一查询!MultiQueryRetriever在LangChain中的高级用法解析

本文深入解析了LangChain中的MultiQueryRetriever高级用法,该工具通过大语言模型自动生成多样化查询,显著提升文档检索的召回率和准确性。文章详细介绍了其核心机制、高级配置调优策略以及在多语言和专业领域中的实际应用,为开发者提供了优化知识库问答系统的实用方案。

weixin_28730927的博客 267

通达信股本变迁文件(gbbq)解密方法

近年来A股市场跌宕起伏真特么精彩,本人愚钝,被整爆仓,损失惨重 痛定思痛,认为交易这种对纪律要求极高,且必须完全排除情绪影响的勾当,还是应该交给程序来干 数据哪里来呢?当然是拿来主义。。。问券商的交易软件要呗 到处查资料,得知通达信的权息文件数据齐全,不仅含有除权除息数据,还含有限售解禁、增发、可转债上市等股本变化数据 ——这对于某些对成交量变化敏感的交易模型是非常重要的

不甘碌碌老,结庐铸宝刀 2万+

ABAP 7.40+新语法实战:用VALUE和REDUCE五分钟搞定复杂内表统计

本文详细介绍了ABAP 7.40+新语法中的VALUE和REDUCE操作符,如何高效处理复杂内表统计任务。通过实战案例展示,这些新语法能将代码量减少70%以上,显著提升开发效率和可读性,特别适合大数据量下的销售数据分析、分组统计等场景。

weixin_27219587的博客 198

ABAP on HANA/CDS view/AMDP 大乱炖

文章目录1. HANA的三大杀器1.1 内存式数据库1.2 多核架构1.3 列式存储1.3.1 数据压缩1.3.2 并行处理1.3.3 聚集和索引1.3.4 代码下移2. CDS 概念2.1 ABAP 开发环境2.2 OPEN SQL语句2.3 CDS 到底是啥2.4 CDS 类型2.5 创建CDS view3. CDS 实战3.1 Annotation注解3.2 Case 语句3.3 数学计算3.4 字符串表达3.5 货币转换3.6 聚集语句3.7 Join3.8 Union3.9 参数3.10 作为子C

weixin_45689053的博客 4772

Ubuntu20.04下运行VINS系列:VINS-Mono、VINS-Fusion和GVINS

安装好了VINS-Mono所需的ROS noetic、Eigen3.4.0、Ceres2.10和OpenCV4.2.0等。VINS-Mono是在ROS melodic以及Ceres1的环境下开发的,因此需要适配高版本的环境。

zardforever123的博客 2万+

激光可燃气体传感器:核心技术环节分析

激光可燃气体传感器核心技术涵盖七个维度:1)TDLAS光谱吸收与调制技术(检测下限ppm级);2)DFB激光器与双闭环温控系统(波长稳定性±0.0036nm);3)微弱信号处理技术(信噪比提升60dB);4)环境补偿算法(温压补偿误差<±1%);5)本质安全防爆设计(ExiaIICT4Ga等级);6)智能边缘计算(STM32L476芯片);7)多重性能验证(响应时间<1秒)。通过微型化、多气体检测等创新,该技术已在工业安全等领域替代传统方案,实现高精度检测。(149字)

上市公司前技术负责人,20 年软硬件深耕 + 百人研发团队管理经验,名校理工科背景加持。从技术攻坚到团队掌舵,沉淀海量项目实战与管理心得,专注分享软硬件干货、疑难问题解决方案,既是靠谱知识传播者,也盼链接优质项目共成长。 1023

本地AI代码助手:智能解析大型代码库,实现自动化重构与理解

在软件开发中,大型代码库的理解与维护是常见挑战。传统方法依赖人工阅读和有限上下文工具,效率低下。通过结合检索增强生成(RAG)和多智能体(Multi-Agent)架构,现代AI工具能够智能解析代码结构,理解模块关系,并精准定位相关代码片段。这种技术不仅能提升代码探索效率,还能自动化执行重构、文档生成等任务,在遗留系统维护、快速上手新项目等场景中发挥关键作用。本文以blackboxaicode/cli为例,展示了如何利用其代码感知和Workflow Automation能力,高效处理复杂代码库。

weixin_30240349的博客 350

遗传算法(GA)全面解析:从生物基础到工程实践

本文全面解析了遗传算法(GA),从其生物基础到工程实践应用。遗传算法模拟自然进化过程,通过选择、交叉和变异等操作在解空间中高效搜索最优解。文章详细介绍了算法的生物学基础(达尔文进化论、孟德尔遗传定律)、基本概念(种群、个体、基因等)和核心思想。重点阐述了遗传算法的数学模型,包括编码机制、适应度函数设计、遗传算子(选择、交叉、变异)以及关键控制参数。最后提供了一个完整的Python实现示例,展示了遗传算法求解函数最大值问题的具体应用。该算法具有群体搜索、概率导向、无需梯度等特点,适用于各类复杂优化问题。

qq_42212808的博客 1164

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: 海康威视嵌入式最全面试题及参考答案(3万字长文)
下一篇: 普联(TP-LINK)嵌入式面试题大全及参考答案(持续更新)

双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大模型大数据攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值