嵌入式基础(二)ARM基础

1.精简指令集和复杂指令集的区别⭐⭐⭐

精简指令集 (RISC)

  • 精简指令集 (Reduced Instruction Set Computing) 具有简洁、精简的指令集,每条指令执行的操作都很基础,使得处理器设计更简单。
  • RISC 处理器通常需要更多的指令来完成复杂的操作,但每条指令执行的时间相对较短。
  • 采用固定长度的指令格式,简化了指令译码的工作,提高了流水线执行效率。
  • RISC 处理器倾向于通过增加寄存器数量来加速运算,以减少内存访问的频率。

复杂指令集 (CISC)

  • 复杂指令集 (Complex Instruction Set Computing) 包含大量复杂的指令,每条指令可以完成更多的工作,包括访存、运算等。
  • CISC 处理器的指令通常更多样化,能够在一条指令内完成复杂的操作,因此每次执行的指令数较少。
  • 具有可变长度的指令格式,使得指令译码较为复杂,执行速度可能会受到影响。
  • CISC 处理器在设计上倾向于通过多种复杂的指令来减少内存访问次数,以提高程序的执行效率。

精简指令集和复杂指令集对比:

指令数量

较多

较少

指令复杂度

简单

复杂

指令执行时间

指令格式

固定长度

可变长度

寄存器的作用

重要,减少内存访问

相对不太重要

2.什么是DMA⭐⭐⭐⭐

什么是DMA

DMA(Direct Memory Access,直接存储器访问) 提供在外设与内存、存储器和存储器、外设 与外设之间的高速数据传输使用。它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU,在这个时间中,CPU对于内存的工作来说就无法使用。简单来说就是一个数据搬运工。

DMA的意义主要体现在以下几个方面:

  1. 代替CPU搬运数据,为CPU减负:数据搬运是一个耗时的任务,如果由CPU来执行数据传输操作,会占据CPU的大量时间和计算资源。通过利用DMA机制,外部设备可以直接与内存进行数据传输,无需CPU的参与,从而减轻了CPU的负担,使其能够专注于执行其他更重要的任务。
  2. 数据搬运工作时效要求高:某些场景下,数据的及时传输非常重要,例如实时流媒体、快速数据采集等应用。DMA能够以高效率和高速度进行数据传输,满足对数据及时性的要求。
  3. 数据搬运任务缺乏技术含量:相比于其他计算任务,数据搬运任务相对简单,缺乏复杂的计算和逻辑操作。通过将数据搬运任务交给DMA执行,CPU可以节省出宝贵的时间和资源,用于执行更具技术含量的计算和处理任务。

DMA搬运数据

1.搬运什么数据

搬运存储器、外设的数据:

外设指的是spi、usart、iic、adc 等基于APB1 、APB2或AHB时钟的外设。

存储器包括自身的闪存(flash)或者内存(SRAM)以及外设的存储设备都可以作为访问地源或者目的。

2.从哪里搬到哪里

1.存储器→存储器(例如:复制某特别大的数据buf)

2.存储器→外设 (例如:将某数据buf写入串口TDR寄存器)

3.外设→存储器 (例如:将串口RDR寄存器写入某数据buf)

3.说说你了解有哪些存储器类型⭐⭐⭐

存储器类型

描述

内存 (RAM)

临时存储数据和程序的主要存储器类型。包括DRAM和SRAM。

只读存储器(ROM)

存储固定数据,如固件和BIOS。

快闪存储器(Flash Memory)

在断电的情况下可以存储数据。常用于SSD和便携设备。

磁盘存储器(Disk Storage)

长期数据存储,包括硬盘驱动器(HDD)和固态硬盘(SSD)。

Cache 存储器

加速访问主存储器中的数据的存储器,包括CPU缓存和磁盘缓存等。

存储介质

长期数据备份和存档,包括磁带、光盘等。

4.FreeRTOS、uCOS的区别⭐⭐

FreeRTOS和uC/OS是两种实时操作系统(RTOS),用于嵌入式系统开发。它们有一些显著的区别,包括以下方面:

FreeRTOS:

  • 具有免费开源的版本,可自由使用和定制。
  • 任务调度:FreeRTOS使用基于优先级的抢占式调度策略,具有较低的上下文切换开销。
  • 内核对象:FreeRTOS提供一些基本的内核对象,如任务、队列和定时器等,具有相对简单的功能。
  • 内存管理:可以选择静态内存分配或动态内存分配,可根据需求进行配置。
  • 社区支持:具有活跃的社区支持,频繁进行更新和改进。

uC/OS:

  • 提供免费和商业版本,商业版本提供额外的功能和支持。
  • 任务调度:可配置为抢占式或协作式调度,灵活适应不同应用需求。
  • 内核对象:提供丰富的内核对象,例如任务、信号量、邮箱、互斥锁等,功能更为全面。
  • 内存管理:需要使用外部内存管理功能,用户可以根据需求选择适当的内存管理机制。
  • 社区支持:社区相对

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

c++/嵌入式面经专栏 文章被收录于专栏

本人2022年毕业于山东大学,目前就职intel。打算把之前校招时做的笔记通过专栏发出来,本专栏适合于C/C++、嵌入式方向就业的同学,本篇面经总结数千篇面经的知识集合,实时更新全网最新的嵌入式/C++最新内容,囊括了C语言、C++、操作系统、计算机网络、嵌入式、算法与数据结构、数据库等一系列知识点,在我看来这些是求职者在面试中必须掌握的知识点。最后呢祝各位能找到自己合适的工作。

全部评论
打卡打卡
2 回复 分享
发布于 02-21 11:08 四川
打卡
点赞 回复 分享
发布于 05-08 11:11 内蒙古
打卡
点赞 回复 分享
发布于 07-15 10:45 四川

相关推荐

点赞 3 评论
分享
牛客网
牛客企业服务