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

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.kler.cn/news/318200.html

相关文章:

  • zabbix email 告警
  • [大语言模型-论文精读] ACL2024-长尾知识在检索增强型大型语言模型中的作用
  • Invalid Executable The executable contains bitcode
  • 报错error: RPC failed,curl 16 Error in the HTTP2 framing layer解决方法
  • 自动化学习3:日志记录及测试报告的生成--自动化框架搭建
  • 数据库课程 CMU15-445 2023 Fall Project-2 Extendible Hash Index
  • WebAssembly (Wasm) 与 JavaScript 字符串交互
  • shardingjdbc分库分表原理
  • 实战16-RVP定义完成适配
  • rocky9.2的lvs的NAT模式下的基本使用的详细示例
  • SpringBoot使用@Async注解,实现异步任务
  • 002.k8s(Kubernetes)一小时快速入门(先看docker30分钟)
  • WPF经典面试题全集
  • JavaEE: 深入探索TCP网络编程的奇妙世界(一)
  • 【MySQL】数据类型【mysql当中各自经典的数据类型的学习和使用】
  • Leetcode 136 只出现一次的数字
  • EfficientFormer实战:使用EfficientFormerV2实现图像分类任务(一)
  • WPF 的TreeView的TreeViewItem下动态生成TreeViewItem
  • 合宙LuatOS应用,与时间相关那些事
  • k8s中pod的创建过程和阶段状态
  • Allegro视频去除走线的小方块
  • Milvus - 四种一致性级别与应用场景解析
  • 可靠传输是什么?是基于UDP实现的吗
  • JUC并发编程_四大函数式接口和 Stream 流式计算
  • 适用于 Windows 的 7 大数据恢复工具,可靠的数据恢复工具可有效地恢复丢失的文件
  • 后端开发工程师转行大模型领域:全面学习路线指南,非常详细收藏我这一篇就够了
  • 【大语言模型_1】VLLM部署Qwen模型
  • 【速成Redis】04 Redis 概念扫盲:事务、持久化、主从复制、哨兵模式
  • 2-102基于matlab的蒙特卡洛仿真
  • C语言——文件操作