ARM/Linux嵌入式面经(三三):大疆

嵌入式工程师考察主要蕴含:C/C++,处理器的架构,操作系统(linux或嵌入式实时操作系统),常见硬件接口协议/总线,文件存储系统等几方面

文章目录

  • 1)C/C++
    • static作用,变量加入static以后在内存中存储位置的变化。
      • static的作用
      • 变量加入static后在内存中存储位置的变化
      • 面试官可能的追问
    • volatile作用
      • volatile的作用
      • 示例代码
      • 面试官的追问
    • C++为什么有指针还要引用,为什么不和JAVA一样抛弃指针
      • 为什么C++有指针还要引用?
      • 为什么C++不和JAVA一样抛弃指针?
      • 面试官可能追问的问题:
    • delete和delete[]的区别
      • `delete`
      • `delete[]`
      • 示例
      • 面试官可能的追问
    • 虚函数是用来干嘛的?虚函数机制怎么实现的?虚表指针在内存中的存放位置?
      • C++虚函数是用来干嘛的?
      • 虚函数机制怎么实现的?
      • 虚表指针在内存中的存放位置?
      • 面试官可能的追问
    • C++多态怎么理解?C++有哪些多态的典型例子?
      • C++多态的理解
      • C++多态的典型例子
        • 1. 虚函数实现多态
        • 2. 纯虚函数与抽象类
      • 面试官可能的追问
    • 叙述程序编译都包含哪些阶段,每个阶段干了什么?
      • 面试官可能的追问
    • CMake是如何包含文件目录的
      • 使用`include_directories()`
      • 使用`target_include_directories()`
      • 面试官可能的追问
    • 全局变量和局部变量在什么地方?堆栈如何申请资源?
      • 全局变量和局部变量的存储位置
      • 堆栈如何申请资源
      • 面试官可能的追问
    • C语言编译后的内存分布
      • C语言编译后的内存分布
      • 面试官可能的追问
    • 我连续调用同一个函数两次,他的局部变量初始化结果是否会一致?(函数调用的过程)
      • 完整且有深度的回答
      • 面试官可能追问的几个相关问题
    • 你说静态局部变量存储在静态区,那么静态区的创建和消失是在什么时候?
      • 静态区的创建和消失时机
      • 面试官可能的追问
    • 我在windows里面运行了多个进程,其中一个进程执行完了,他的静态区会如何处理?(多进程的内存管理问题)
      • 回答
      • 面试官可能的追问
    • 静态局部变量与局部变量的区别?为什么局部变量未定义时,每次初始化的结果是不确定的?是个真随机数还是个伪随机数?
      • 静态局部变量与局部变量的区别
      • 为什么局部变量未定义时,每次初始化的结果是不确定的?是个真随机数还是个伪随机数?
      • 面试官可能的追问
    • 嵌入式中栈的工作机制是什么?
      • 栈的工作机制
      • 面试官的追问
    • struct字节对齐了解么?
      • struct字节对齐概述
      • 字节对齐的作用
      • 字节对齐的规则
      • 示例分析
      • 面试官的追问
    • 容器了解吗?vector实现的机制是怎么样的?
      • 容器了解吗?
      • vector实现的机制是怎么样的?
    • 迭代器有了解吗?讲解一下你的理解
      • 迭代器的理解
      • 面试官的追问
    • 内存分配函数了解么?如果系统中只有10K内存,而我要分配12K,能分配成功吗?如果能,那么将分配到的区域用memset进行初始化,会成功吗?
      • 回答内存分配函数及其相关问题
      • 面试官可能的追问:
  • 2)处理器架构
    • 51和32架构的区别
      • 51架构与32位架构(以ARM为例)的主要区别
      • 面试官可能追问的问题
    • MCU可以运行Liunux吗,为什么?
      • 为什么MCU可以运行Linux?
      • 挑战与限制
      • 面试官追问
    • STM32启动过程(上电开始->main执行的过程)
      • STM32启动过程
      • 面试官可能提出的追问
    • 中断响应执行流程,中断上下文指的什么,保存中断上下文是完成的什么操作,以STM32为例,都有哪些寄存器被保存
      • 中断响应执行流程
      • 中断上下文
      • 保存中断上下文的操作
      • STM32中被保存的寄存器
      • 面试官可能追问的问题
    • STM32 F1和F4的区别
      • 一、内核与性能
      • 二、外设与功能
      • 三、存储与资源
      • 四、功耗与效率
      • 面试官可能追问的问题:
    • Cotex-M系列使用浮点运算对STM32中断效率会产生什么影响
      • 浮点运算对STM32中断效率的影响
        • 1. Cortex-M系列内核的浮点运算能力
        • 2. 对中断效率的影响
        • 3. 优化建议
      • 面试官可能追问的问题
    • 什么是大小端模式
      • 大小端模式定义
      • 大小端模式的应用场景
      • 面试官可能追问的问题
  • 3)操作系统
    • Freertos支持的任务调度方式,详细说下每种方式
      • 1. 抢占式调度(Preemptive Scheduling)
      • 2. 时间片轮转调度(Round-Robin Scheduling)
      • 总结
    • 任务(线程)间通信方法
      • 常用的任务(线程)间通信方法
    • 进程和线程的区别
      • 进程和线程的区别
      • 面试官可能的追问
    • 互斥量和信号量的区别
      • 一、定义与用途
      • 二、特性与行为
      • 三、使用场景
      • 四、面试官可能追问的问题
    • 优先级翻转,如何避免优先级翻转
      • 一、优先级翻转的避免策略
      • 二、面试官可能追问的问题
    • STM32任务切换为什么用PendSV
      • 一、PendSV的优势
      • 二、STM32任务切换的具体过程
      • 三、面试官可能追问的问题
    • FreeRTOS的内存管理怎么实现的?为什么这么做?
      • 实现方式
      • 为什么这么做
      • 面试官可能追问的问题
    • 对于临界区数据的处理,使用互斥锁和自己通过条件来判断,哪样更好,为什么?
      • 使用互斥锁的优势
      • 自己通过条件来判断的劣势
      • 面试官可能追问的问题
  • 4)常见硬件接口协议/总线
    • (1)SPI
        • 问题1:
        • 问题2:
        • 问题3:
    • (2)IIC
        • 问题1:
        • 问题2:
        • 问题3:
        • 问题4:
    • (3)UART
        • 问题1:
        • 问题2:
        • 问题3:
    • (4)FSMC
        • 问题1:
        • 问题2:
        • 问题3:
    • (5)AXI
        • 问题1:
        • 问题2:
        • 问题3:

1)C/C++

static作用,变量加入static以后在内存中存储位置的变化。

static作用及变量加入static后在内存中存储位置的变化

static的作用

在C/C++等编程语言中,static关键字有着多重作用,主要根据它被应用到的上下文环境(如全局变量、局部变量、函数等)而有所不同。但总体来说,static主要提供了两个核心功能:

  1. 隐藏:当static用于全局变量时,它限制了该变量的作用域仅在其被声明的文件内部,避免了不同文件中同名全局变量的冲突,实现了对变量的隐藏。

  2. 持久性:无论static用于局部变

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

828华为云征文 | 使用Flexus云服务器X实例部署GLPI资产管理系统

828华为云征文 | 使用Flexus云服务器X实例部署GLPI资产管理系统 1. 部署环境说明2. 部署基础环境2.1. 操作系统基本配置2.2. 部署Nginx2.3. 部署MySQL2.4. 部署PHP 3. 部署GLPI资产管理系统 1. 部署环境说明 本次环境选择使用华为云Flexus云服务器X实例,因为其具有高…

无人机之AI跟踪篇

无人机的AI识别技术依托于计算机视觉和深度学习技术,实现了对目标的快速精准识别,在多个领域展现出了巨大的应用潜力和价值。以下是对无人机AI识别技术的详细解析: 一、无人机AI识别算法的基础原理 无人机AI识别算法主要基于先进的计算机视觉…

【刷题日记】15. 三数之和

15. 三数之和 两数之和可以用巧思也可以用map 三数之和会更加复杂一点,且这道题还需要考虑避免重复答案! 思路: 特判:检如果nums 为 null 或长度小于 3直接返回空数组。排序:使用 sort对数组进行升序排序。就变成了…

JS实现树形结构数据中特定节点及其子节点显示属性设置的技巧(可用于树形节点过滤筛选)

大家好,今天我要分享的是如何在树形结构的数据中,根据特定条件设置节点及其所有子节点的显示属性。在实际项目中,这种需求非常常见,特别是在需要动态展示和隐藏节点的情况下。下面我将通过一个具体的示例来讲解实现过程。 需求分析…

Web开发:ABP框架3——入门级别的接口增删改查实现原理

一、上节回顾 运用了ABP框架&#xff0c;使用了EFcore进行增删改查 二、程序的入口 代码解说&#xff1a; public class Program // 定义程序主类 {public async static Task<int> Main(string[] args) // 主方法&#xff0c;返回状态码{// 配置Serilog日志Log.Logger…

【QT】定时器使用

文章目录 关于 Qt 定时器使用的注意细节总结实例-检查工具使用周期时间是否合理UI设计头文件 remind.h源文件 remind.cpp实现效果 关于 Qt 定时器使用的注意细节总结 一、创建与初始化 使用 QTimer 类来创建定时器。可以在构造函数中指定父对象&#xff0c;确保定时器在正确的…

【C++】STL----list常见用法

&#x1f525;个人主页&#x1f525;&#xff1a;孤寂大仙V &#x1f308;收录专栏&#x1f308;&#xff1a;C从小白到高手 &#x1f339;往期回顾&#x1f339;&#xff1a;[C]vector常见用法 &#x1f516; 流水不争&#xff0c;争的是滔滔不息。 文章目录 一、list的介绍li…

【网络通信基础与实践第二讲】包括互联网概述、互联网发展的三个阶段、互联网的组成、计算机网络的体系结构

一、互联网概述 计算机网络是由若干节点&#xff08;node&#xff09;和连接这些节点的链路&#xff08;link&#xff09;组成。 网络之间还可以通过路由器互联起来&#xff0c;这就构成了一个覆盖范围更大的计算机网络。这样的网络称为互联网。 网络把许多计算机连接在一起…

SpringCloud-04 OpenFeign服务调用与负载均衡

OpenFeign是一个声明式、模板化的HTTP客户端&#xff0c;它简化了在Java应用程序中调用RESTful API的过程。OpenFeign是Netflix开发的一个开源项目&#xff0c;它构建在Feign的基础上&#xff0c;为开发者提供了更加简单、灵活的方式来实现HTTP请求。OpenFeign的特点包括&#…

计算机网络:概述 - 性能指标

目录 一. 速率 二. 带宽 三. 吞吐量 四. 时延 五. 时延带宽积 六. 往返时间RTT 七. 利用率 八. 丢包率 此博客介绍计算机网络中的性能指标&#xff0c;性能指标从不同的角度来度量计算机网络的性能。下面介绍几个常用的性能指标&#xff1a; 一. 速率…

服务器非法关闭后MySQL服务启动失败

在写这篇文章前&#xff0c;我弄好了&#xff0c;写完之后把成功安装的几个MySQL都删除了&#xff0c;只留了最后测试成功的服务“mysql-test” ,然后点击运行&#xff0c;发现又出现上图的错误。心态炸了。 本以为定位到问题了&#xff0c;但是这个错误让我迷茫了。我只能临时…

基于spring的ssm整合

目录 基于spring的ssm整合 Spring 框架 SpringMVC 框架 MyBatis 框架 1.创建项目 2.导入依赖 3.导入sql 4.创建jdbc.propries文件 1&#xff09;mysql8以下 2&#xff09;mysql8以上的 5.创建mybatis-config.xml配置文件 6.创建spring-Config.xml文件 7.创建项目所需包和类 1&a…

.whl文件下载及pip安装

以安装torch_sparse库为例 一、找到自己需要的版本&#xff0c;点击下载。 去GitHub的pyg-team主页中找到pytorch-geometric包。网址如下&#xff1a; pyg-team/pytorch_geometric​github.com/pyg-team/pytorch_geometric 然后点击如图中Additional Libraries位置的here&am…

Android系统dumpsys命令详解

文章目录 1. dumpsys 的工作原理2. 基本使用方法执行 dumpsys限制 dumpsys 的输出 3. 常见的 dumpsys 服务1. Activity Manager (activity)2. Battery Service (battery)3. Window Manager (window)4. Package Manager (package)5. Power Manager (power)6. Media DRM (media.d…

青柠视频云——视频丢包(卡顿、花屏、绿屏)排查

一、问题说明 近期有客户反馈&#xff0c;接入平台的设备经常出来卡顿、花屏、录屏的情况&#xff0c;出现这样的场景很是尴尬。 客户是私有化部署在公网环境&#xff0c;于是我们联系客户&#xff0c;对问题进行追踪排查。 二、场景复现 我们现场情况确认的过程中&#xff0c;…

Web 安全基础教程:从零基础入门到精通

一、Web 安全概述 &#xff08;一&#xff09;Web 安全的定义与重要性 1.定义 Web 安全是指保护 Web 应用程序免受各种网络威胁&#xff0c;确保 Web 服务的保密性、完整性和可用性。在当今数字化时代&#xff0c;Web 应用广泛存在于各个领域&#xff0c;从电子商务到社交媒…

Vue 实现高级穿梭框 Transfer 封装

文章目录 01 基础信息1.1. 技术栈1.2. 组件设计a. 竖版设计稿b. 横版设计稿 02 技术方案&#xff08;1&#xff09;初定义数据&#xff08;2&#xff09;注意事项&#xff08;3&#xff09;逻辑草图 03 代码示例3.1. 组件使用3.2. 组件源码./TransferPlus/index.vue./TransferP…

《史上最简单的 SpringCloud 教程》

Finchley版本 Spring Cloud Finchley; Spring Boot 2.0.3 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现&#xff08;Eureka&#xff09;(Finchley版本)史上最简单的SpringCloud教程 | 第二篇: 服务消费者&#xff08;restribbon&#xff09;(Finchley版本)史上最…

有没有自带财务管理功能的海外仓系统?

在全球化的商业环境中&#xff0c;海外仓作为连接国际市场的物流枢纽&#xff0c;其重要性日益凸显。然而&#xff0c;随着业务范围的扩展和费用类型的多样化&#xff0c;海外仓在财务管理上面临着诸多挑战。传统的手工计费和对账方式不仅耗时费力&#xff0c;而且容易出错&…

网关登录校验(2)----网关如何将用户信息传递给微服务

1.微服务获取用户信息 现在&#xff0c;网关已经可以完成登录校验并获取登录用户身份信息。但是当网关将请求转发到微服务时&#xff0c;微服务又该如何获取用户身份呢&#xff1f; 由于网关发送请求到微服务依然采用的是Http请求&#xff0c;因此我们可以将用户信息以请求头…