当前位置: 首页 > news >正文

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用于局部变

相关文章:

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

嵌入式工程师考察主要蕴含:C/C++,处理器的架构,操作系统(linux或嵌入式实时操作系统),常见硬件接口协议/总线,文件存储系统等几方面 文章目录 1)C/C++static作用,变量加入static以后在内存中存储位置的变化。static的作用变量加入static后在内存中存储位置的变化面试官…...

《DevOps实践指南》笔记-Part 2

一篇文章显得略长,本文对应第3-4章。前言、第1-2章请参考Part 1;第5-6章、附录、认证考试、参考资源等内容,请参考Part 3。 流动的技术实践 持续交付:降低在生产环境中部署和发布变更的风险。包括:打好自动化部署流水…...

树莓派智能语音助手实现音乐播放

树莓派语音助手从诞生的第一天开始,我就想着让它能像小爱音箱一样,可以语音控制播放音乐。经过这些日子的倒腾,今天终于实现了。 接下里,和大家分享下我的实现方法:首先音乐播放模块用的是我在上一篇博文写的《用sound…...

【sgCreateCallAPIFunctionParam】自定义小工具:敏捷开发→调用接口方法参数生成工具

<template><div :class"$options.name" class"sgDevTool"><sgHead /><div class"sg-container"><div class"sg-start"><div style"margin-bottom: 10px">参数列表[逗号模式]<el-too…...

完整版:NacosDocker 安装

第一步&#xff1a;先直接通过命令安装 Nacos docker run --name nacos2.2.3 -d -p 8848:8848 -e MODEstandalone f151dab7a111 第二步&#xff1a;创建 Docker 挂载目录 # 创建 log 目录 mkdir -p /root/nacos 第三步&#xff1a;将 Docker 容器的文件复制到挂载目录中 …...

mysql RR是否会导致幻读?

除了rr级别的当前读&#xff0c;都会幻读 mysql不同隔离级别&#xff1a; 而对于RC级别的语句级快照和RR级别的事务级快照的之间的区别&#xff0c;其实是由read_view生成的时机来实现的。 RC级别在执行语句时&#xff0c;会先关闭原来的read_view&#xff0c;重新生成新的r…...

一篇进阶Python深入理解函数之高阶函数与函数式编程

当我们深入探讨了函数的作用域与闭包,了解到函数不仅是代码的执行单元,还能通过闭包完成数据的封装与保护.接下来,我们将进一步挖掘函数的强大特性,尤其是高阶函数与函数式编程,帮助你更全面地理解 Python 中函数的特性与应用. 高阶函数 高阶函数是指接受一个或多个函数作为参…...

python中Web开发框架的使用

Python 的 Web 开发框架种类繁多&#xff0c;常见的有 Django 和 Flask 这两个框架。它们各有优点&#xff0c;适合不同类型的 Web 应用开发需求。下面&#xff0c;我将详细介绍这两大主流框架的使用方法&#xff0c;让你快速上手 Python 的 Web 开发。 1. Django Django 是一…...

【AI视频】Runway:Gen-2 运镜详解

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AI视频 | Runway 文章目录 &#x1f4af;前言&#x1f4af;Camera Control&#xff08;运镜&#xff09;&#x1f4af;Camera Control功能测试Horizonta&#xff08;左右平移&#xff09;Vertical&#xff08;上下平移&#xff0…...

Python “函数” ——Python面试100道实战题目练习,巩固知识、检查技术、成功就业

本文主要是作为Python中函数的一些题目&#xff0c;方便学习完Python的函数之后进行一些知识检验&#xff0c;感兴趣的小伙伴可以试一试&#xff0c;含选择题、判断题、实战题、填空题&#xff0c;答案在第五章。 在做题之前可以先学习或者温习一下Python的函数&#xff0c;推荐…...

[产品管理-15]:NPDP新产品开发 - 13 - 产品创新流程 - 具体产品的创新流程:精益生产与敏捷开发

目录 前言&#xff1a;​ 一、集成产品开发IPD模型——集成跨功能团队的产品开发 1.1 概述 1、IPD模型的核心思想 2、IPD模型的主要组成部分 3、IPD模型的实施步骤 4、IPD模型的优点 1.2 基于IPD系统的组织实践等级 1.3 IPD的优缺点 二、瀑布开发模型 1、定义与特点…...

FB仿真模拟PID曲线数据

为了能直观的理解PID的参数调整与曲线数据的变化关系&#xff0c;使用FB写了一个模拟PID曲线数据的程序。 PID类如下&#xff1a; Type PIDController Private : kp_ As Double //比例增益 ki_ As Double //积分增益 kd_ As Double …...

【变化检测】基于ChangeStar建筑物(LEVIR-CD)变化检测实战及ONNX推理

主要内容如下&#xff1a; 1、LEVIR-CD数据集介绍及下载 2、运行环境安装 3、ChangeStar模型训练与预测 4、Onnx运行及可视化 运行环境&#xff1a;Python3.8&#xff0c;torch1.12.0cu113&#xff0c;onnxruntime-gpu1.12.0 likyoo变化检测源码&#xff1a;https://github.c…...

kafka动态认证 自定义认证 安全认证-亲测成功

kafka动态认证 自定义认证 安全认证-亲测成功 背景 Kafka默认是没有安全机制的&#xff0c;一直在裸奔。用户认证功能&#xff0c;是一个成熟组件不可或缺的功能。在0.9版本以前kafka是没有用户认证模块的&#xff08;或者说只有SSL&#xff09;&#xff0c;好在kafka0.9版本…...

航空航司reese84逆向

reese84逆向 Reese84 是一种用于保护网站防止自动化爬虫抓取的防护机制&#xff0c;尤其是在航空公司网站等需要严格保护数据的平台上广泛使用。这种机制通过复杂的指纹识别和行为分析技术来检测和阻止非人类的互动。例如&#xff0c;Reese84 可以通过分析访问者的浏览器指纹、…...

【HTTP】请求“报头”,Referer 和 Cookie

Referer 描述了当前这个页面是从哪里来的&#xff08;从哪个页面跳转过来的&#xff09; 浏览器中&#xff0c;直接输入 URL/点击收藏夹打开的网页&#xff0c;此时是没有 referer。当你在 sogou 页面进行搜索时&#xff0c;新进入的网页就会有 referer 有一个非常典型的用…...

使用sqoop报错

报错一&#xff1a; java.io.IOException: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf 这个错误表示在执行与 Hive 相关的操作时&#xff0c;程序无法找 org.apache.hadoop.hive.conf.HiveConf 这个类。这个类是 Hive 的配置类&#xff0c;它用…...

一个简单的基于C语言的HTTP代理服务器的案例

一个简单的基于C语言的HTTP代理服务器的案例。这个代理服务器可以接收客户端的HTTP请求&#xff0c;并将请求转发到目标服务器&#xff0c;然后将服务器的响应返回给客户端。 1. 代理服务器的主要代码 #include <stdio.h> #include <stdlib.h> #include <stri…...

Linux学习-Ansible(二)

基本配置 #主机清单文件 [rootharbor ansible]# cat hostlist [web] 192.168.29.161 192.168.29.162 [es] 192.168.29.171 192.168.29.172 192.168.29.173 #查看所有被管理的主机 [rootharbor ansible]# ansible all --list-hostshosts (5):192.168.29.161192.168.29.162192.1…...

[SDX35]SDX35硬件使用512MB内存,实际只初始化256MB问题分析及解决方案

SDX35 SDX35介绍 SDX35设备是一种多模调制解调器芯片,支持 4G/5G sub-6 技术。它是一个4nm芯片专为实现卓越的性能和能效而设计。它包括一个 1.9 GHz Cortex-A7 应用处理器。 SDX35主要特性 ■ 3GPP Rel. 17 with 5G Reduced Capability (RedCap) support. Backward compati…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...