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主要提供了两个核心功能:
-
隐藏:当
static用于全局变量时,它限制了该变量的作用域仅在其被声明的文件内部,避免了不同文件中同名全局变量的冲突,实现了对变量的隐藏。 -
持久性:无论
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 安装
第一步:先直接通过命令安装 Nacos docker run --name nacos2.2.3 -d -p 8848:8848 -e MODEstandalone f151dab7a111 第二步:创建 Docker 挂载目录 # 创建 log 目录 mkdir -p /root/nacos 第三步:将 Docker 容器的文件复制到挂载目录中 …...
mysql RR是否会导致幻读?
除了rr级别的当前读,都会幻读 mysql不同隔离级别: 而对于RC级别的语句级快照和RR级别的事务级快照的之间的区别,其实是由read_view生成的时机来实现的。 RC级别在执行语句时,会先关闭原来的read_view,重新生成新的r…...
一篇进阶Python深入理解函数之高阶函数与函数式编程
当我们深入探讨了函数的作用域与闭包,了解到函数不仅是代码的执行单元,还能通过闭包完成数据的封装与保护.接下来,我们将进一步挖掘函数的强大特性,尤其是高阶函数与函数式编程,帮助你更全面地理解 Python 中函数的特性与应用. 高阶函数 高阶函数是指接受一个或多个函数作为参…...
python中Web开发框架的使用
Python 的 Web 开发框架种类繁多,常见的有 Django 和 Flask 这两个框架。它们各有优点,适合不同类型的 Web 应用开发需求。下面,我将详细介绍这两大主流框架的使用方法,让你快速上手 Python 的 Web 开发。 1. Django Django 是一…...
【AI视频】Runway:Gen-2 运镜详解
博客主页: [小ᶻZ࿆] 本文专栏: AI视频 | Runway 文章目录 💯前言💯Camera Control(运镜)💯Camera Control功能测试Horizonta(左右平移)Vertical(上下平移࿰…...
Python “函数” ——Python面试100道实战题目练习,巩固知识、检查技术、成功就业
本文主要是作为Python中函数的一些题目,方便学习完Python的函数之后进行一些知识检验,感兴趣的小伙伴可以试一试,含选择题、判断题、实战题、填空题,答案在第五章。 在做题之前可以先学习或者温习一下Python的函数,推荐…...
[产品管理-15]:NPDP新产品开发 - 13 - 产品创新流程 - 具体产品的创新流程:精益生产与敏捷开发
目录 前言: 一、集成产品开发IPD模型——集成跨功能团队的产品开发 1.1 概述 1、IPD模型的核心思想 2、IPD模型的主要组成部分 3、IPD模型的实施步骤 4、IPD模型的优点 1.2 基于IPD系统的组织实践等级 1.3 IPD的优缺点 二、瀑布开发模型 1、定义与特点…...
FB仿真模拟PID曲线数据
为了能直观的理解PID的参数调整与曲线数据的变化关系,使用FB写了一个模拟PID曲线数据的程序。 PID类如下: Type PIDController Private : kp_ As Double //比例增益 ki_ As Double //积分增益 kd_ As Double …...
【变化检测】基于ChangeStar建筑物(LEVIR-CD)变化检测实战及ONNX推理
主要内容如下: 1、LEVIR-CD数据集介绍及下载 2、运行环境安装 3、ChangeStar模型训练与预测 4、Onnx运行及可视化 运行环境:Python3.8,torch1.12.0cu113,onnxruntime-gpu1.12.0 likyoo变化检测源码:https://github.c…...
kafka动态认证 自定义认证 安全认证-亲测成功
kafka动态认证 自定义认证 安全认证-亲测成功 背景 Kafka默认是没有安全机制的,一直在裸奔。用户认证功能,是一个成熟组件不可或缺的功能。在0.9版本以前kafka是没有用户认证模块的(或者说只有SSL),好在kafka0.9版本…...
航空航司reese84逆向
reese84逆向 Reese84 是一种用于保护网站防止自动化爬虫抓取的防护机制,尤其是在航空公司网站等需要严格保护数据的平台上广泛使用。这种机制通过复杂的指纹识别和行为分析技术来检测和阻止非人类的互动。例如,Reese84 可以通过分析访问者的浏览器指纹、…...
【HTTP】请求“报头”,Referer 和 Cookie
Referer 描述了当前这个页面是从哪里来的(从哪个页面跳转过来的) 浏览器中,直接输入 URL/点击收藏夹打开的网页,此时是没有 referer。当你在 sogou 页面进行搜索时,新进入的网页就会有 referer 有一个非常典型的用…...
使用sqoop报错
报错一: java.io.IOException: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf 这个错误表示在执行与 Hive 相关的操作时,程序无法找 org.apache.hadoop.hive.conf.HiveConf 这个类。这个类是 Hive 的配置类,它用…...
一个简单的基于C语言的HTTP代理服务器的案例
一个简单的基于C语言的HTTP代理服务器的案例。这个代理服务器可以接收客户端的HTTP请求,并将请求转发到目标服务器,然后将服务器的响应返回给客户端。 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…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
