当前位置: 首页 > 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…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...