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

目录

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

表格总结

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

中断流程

中断上下文理解

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

schedule() 函数原理

调用时机

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

页表机制

分页的缺点

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

多级反馈队列调度

时间片轮转

使用 nice 命令

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

进程内存分配

段页式存储

缺页中断

进程间通信

用户空间和内核空间

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

进程间共享内存

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

设计细节

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

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

信号量释放后的调度决策

选择机制

调度决策

表格总结

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

评估实时性

测算中断响应时间

表格总结

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

用户态与内核态设计

安全性保障

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

产品方向

产品示例

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

遇到的问题

解决方案

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

多态概念

示例

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

C++11 新特性

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

字节对齐规则

为什么需要字节对齐

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

内存区域

const 关键字的用法

const 的用途

示例

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

copy_from_user 实现原理

大量数据传递

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

extern "C" 的作用

C 语言环境和 C++ 的不同

delete []和 delete 的区别?

delete 和 delete[] 的区别

示例

C++11 的新特性有了解过吗?

C++11 新特性

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

指针与引用的区别

线程切换是怎么设计的?

线程切换设计

表格总结

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

信号量底层设计

互斥量底层设计

内存管理是如何设计的?

内存管理设计

中断管理是如何设计的?

中断管理设计

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

创新之处

线程同步用过什么?

线程同步机制

示例

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

高低优先级翻转

解决方案

示例表格

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

自旋锁与互斥锁的区别

在中断中使用自旋锁避免死锁

示例表格

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

U-COS 系统滴答时钟

设置滴答时钟频率

示例表格

多任务运行同步机制

同步机制概述

常见的同步机制

示例表格

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

STM32 芯片配置示例

示例表格

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

开发经验

你开发过哪些驱动吗?

驱动开发经验

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

SPI 通信过程

SPI 的线路

示例表格

速率配置

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

DMA 技术

DMA 的工作原理

示例表格

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

SPI 模式

示例表格

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

GDB 常用命令

编译报错定位

多线程调试

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

回溯概念

GDB 中的栈回溯调试

示例表格

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

程序跑飞定位

运行态的错误怎么调试?

运行态错误调试

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

新的设计想法

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

操作系统多线程模块

用过大疆哪些产品?RoboMaster S1

RoboMaster S1 介绍

互斥量和信号量区别

互斥量与信号量的区别

示例表格

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

项目难题解决

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

无人机的未来

大疆产品优缺点

示例表格

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

互斥锁与自定义条件判断

互斥锁的优势

示例表格

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

上下文切换过程

示例表格

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

中断工作原理

示例表格

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

MMU(Memory Management Unit)

示例表格

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

全局变量存储位置

示例表格

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

U-Boot 启动流程

两阶段的原因

示例表格

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

第一阶段足够小的原因

示例表格

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

I2C 和 SPI 总线协议

示例表格

I2C 的读写数据的步骤

I2C 读写数据步骤

示例表格

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

MMU(Memory Management Unit)

示例表格

什么是缺页异常?

缺页异常概念

示例表格

可以举一个具体的缺页异常产生的例子吗?

缺页异常的具体例子

示例表格

用户态程序访问空指针或者 0 地址会发生什么?

访问空指针或 0 地址的结果

示例表格

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

判断物理地址合法性

示例表格

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

是否需要标记所有合法地址

示例表格

页表是如何初始化?

页表初始化过程

示例表格

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

ELF 文件的内存布局

示例表格

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

堆区和栈区之间的区域

示例表格

mmap 匿名页的映射?

mmap 匿名页映射

示例表格

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

mmap 的虚拟地址与文件关联

示例表格

gdb 使用过吗?

GDB 的使用

示例表格

阅读过汇编代码吗?

汇编语言概述

示例表格

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

C 语言函数入参的汇编导入

示例表格

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

STM32 芯片硬件概述

示例表格

STM32 中断控制器是什么?

STM32 中断控制器

示例表格

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

嵌入式开发概述

准备工作

示例表格

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

FreeRTOS 内存管理

示例表格

线程之间的通信方式?

线程间通信方式

示例表格

FreeRTOS 任务抢占的机制

FreeRTOS 任务抢占机制

示例表格

FreeRTOS 内存分配

FreeRTOS 内存分配机制

示例表格

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

未初始化的变量初值

示例表格

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

static 变量初始化阶段

示例表格

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

程序从写完到运行的过程

示例表格

虚函数是用来干嘛的?虚函数机制怎么实现的?虚表指针在内存中的存放位置?

虚函数及其机制

示例表格

智能指针用过吗?weak_ptr 是用来干嘛的?怎么保证用 weak_ptr 不会崩溃?

智能指针和 weak_ptr

示例表格

进程和线程的区别?

进程和线程的区别

示例表格

用过大疆哪些产品?RoboMaster S1

大疆 RoboMaster S1

互斥量和信号量区别

互斥量和信号量的区别

示例表格


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

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

  1. 发起系统调用:

    • 用户态程序通过调用一个库函数(通常是 glibc 提供的)来发起系统调用。
    • 库函数负责设置好系统调用所需的参数,并通过特定的指令(

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/877125.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3V升5V输出800mA可驱动10MA驱动蜂鸣片芯片AH6910

135-3806-7573今天,我们将深入解析一款名为AH6910的芯片,这款芯片以其独特的3V至5V宽电压输入范围、800mA的高输出电流能力,以及能够轻松驱动低至10mA需求的蜂鸣片,成为了众多电子项目中的优选元件。######一、AH6910芯片概述 AH…

RIP路由协议

RIP-路由信息协议V1/V2/NG NG版为ipv6专用 距离矢量型IGP路由协议,使用跳数作为度量,支持等开销负载均衡;基于UDP,520端工作,基于UDP V1和V2的区别: 1、v1为有类别协议--不支持VLSM/CIDR,即使使…

ic进阶|性能篇02:一文带你了解一种特殊的并行技术-展开!

本期文章让我们聊聊一种数字ic设计技术——展开,展开用于产生一个一次迭代就相当于原有结构的多次迭代的新电路结构。其相当于之前聊过的折叠技术的反向操作,折叠使用一个功能单元通过多次迭代来完成原有电路结构一次迭代的操作,相对于通过时…

中电金信:云原生时代IT基础设施管理利器——基础设施即代码(IaC)

在数字化转型、零售业务快速发展、信创建设驱动下,应用架构、技术架构、基础架构都已向云原生快速演进,银行业IT基础设施管理产生了非常大的变化,当前银行业,正在开展新一轮的核心应用系统重构、基础平台统一建设等重点任务&#…

Playwright 的使用

Playwright 的特点 支持当前所有主流浏览器,包括 Chrome 和 Edge (基于 Chromiuns), Firefox , Safari 支持移动端页面测试,使用设备模拟技术,可以让我们在移动Web 浏览器中测试响应式的 Web 应用程序 支持所有浏览…

x264编解码库 -介绍和使用示例

目录 1:X264简单介绍 1.1:编译x264 1.2:x264简单介绍 1.3:x264的优势 1.4:x264与FFmpeg的关系 1.5:x264 编解码原理 1.6 进一步学习资源 2:demo效果 3:完整代码 4:附件…

6 网络

6 网络 1、概念2 IP地址3、套接字4、TCP协议4.1 TCP协议的基本特征4.2 建立连接4.4 终止连接4.5 编程模型 5、UDP协议5.1 UDP协议的基本特性5.2 常用函数5.3 UDP通信模型 6、域名解析 1、概念 计算机网络是实现资源共享和信息传递的计算机系统 ISO/OSI网络协议模型 TCP/IP协…

C语言进阶 10. 字符串

C语言进阶 10. 字符串 文章目录 C语言进阶 10. 字符串10.1. 字符串10.2. 字符串变量10.3. 字符串输入输出10.4. 字符串数组10.5. 单字符输入输出10.6. 字符串函数strlen()10.7. 字符串函数strc()10.8. 字符串函数strcpy()10.9. 字符串搜索函数10.10. PAT10-0. 说反话 (20)10-1.…

idea中导入外部依赖并打包到jar包中

前言: 很多时候在我们写项目对接三方的时候都需要导入三方jar包,而这时候我们用平常的pom里面写依赖发现导入不了(直接把jar包放在本地导入的话打包的话也不会将该依赖打包进我们项目的jar包),我在网上找了几种方法 …

Linux网络-ss命令

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注我,我尽量把自己会的都分享给大家,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 Linux服务器作为一个常用的网络服务器,主要的作用就是向客户端提供网络…

【C++】C++11中R字符串的作用

在 C11 中添加了定义原始字符串的字面量 1.定义和基本使用 定义方式为: R"xxx(原始字符串)xxx"其中 () 两边的字符串可以省略,R只会处理括号中的字符串。 原始字面量 R 可以直接表示字符串的实际含义,而不需要额外对字符串做转义…

谷歌团队新技术Alchemist:使用扩散模型对材料属性进行参数控制

Alchemist是由谷歌团队和麻省理工学院联合研发的一项创新技术,它利用扩散模型对材料属性进行精细的参数控制。这项技术的核心在于能够对真实图像中的物体材料属性进行调整,包括粗糙度、金属感、反照率和透明度等。Alchemist的实现依赖于先进的文本到图像…

【时时三省】(C语言基础)循环语句while(2)

山不在高,有仙则名。水不在深,有龙则灵。 ——csdn时时三省 getchar和scanf的作用 示例: int main ( ) { char password[20] ( 0 ) ; printf ( "请输入密码:> " ); scanf ( " %s…

Sping项目只能勾选17和21 (已解决) 导致的后续Invalid bound statement (not found):

问题发现 今天创建项目的时候发现 idea初始化spring的时候选择不了Java8 解决方案:替换URL为 https://start.aliyun.com/ 将IDEA页面创建Spring项目,其实是访问spring initializr去创建项目。故我们可以通过阿里云国服去间接创建Spring项目。 将https://start.spr…

使用 VMware vCenter Server(vSphere Client)迁移 ESXi 虚拟机

我需要将虚拟机 k8s-dev-node4从 ESXi 主机 192.168.1.161 迁移到 ESXi 主机 192.168.1.162 上,使用 VMware vCenter Server(vSphere Client)在浏览器上可视化操作,将这个需求变的非常简单。 1、选中需要迁移的虚拟机&#xff0c…

【AI落地应用实战】Amazon Bedrock +Amazon Step Functions实现链式提示(Prompt Chaining)

一、链式提示 Prompt Chaining架构 Prompt Chaining 是一种在生成式人工智能(如大型语言模型)中广泛使用的技术,它允许用户通过一系列精心设计的提示(Prompts)来引导模型生成更加精确、丰富且符合特定需求的内容。 P…

获取手机当前信号强度(dbm/asu值)解决 getGsmSignalStrength()总是返回99问题

能看到这篇文章说明网上哪些获取 (dbm/asu值)不适合你,不是他们的代码不正确,而是不符合你的情况 比如安卓6获取android手机信号强度 可以看这篇文章 https://blog.csdn.net/sinat_31057219/article/details/81134030 当然如果你…

Javaweb项目|springboot医院管理系统

收藏点赞不迷路 关注作者有好处 文末获取源码 一、系统展示 二、万字文档展示 基于springboot医院管理系统 开发语言:Java 数据库:MySQL 技术:SpringSpringMVCMyBatisVue 工具:IDEA/Ecilpse、Navicat、Maven 编号:…

Source insight 配置代码格式化

代码格式化工具:Artistic Style Files Download 配置 Source Insight 添加 Astyle 命令 Tools --> Custom Commands -->Add 在 Run 栏填入格式化命令: "D:\Program Files\astyle-3.5.2-x64\astyle.exe" -A3 -t -xV -w -Y -m0 -p -H …

【Vulnhub系列】Vulnhub_Raven2靶场渗透(原创)

【Vulnhub系列靶场】Vulnhub_Raven2 渗透 原文转载已经过授权 原文链接:Lusen的小窝 - 学无止尽,不进则退 (lusensec.github.io) 一、环境准备 从网盘下载该靶机,在vm中选择【打开】 然后设置好存储路径,开机后检查靶机的网络连…