arm裸机开发 单片机 面经

1.ARM处理器与中断(15道) 

1.1 CPU的内部结构?

CPU的内部结构大致可以分为: 

(1)控制单元(指令寄存器、指令译码器、操作控制器)。 

(2)运算单元(算术逻辑单元)。 

(3)存储单元(专用寄存器和通用寄存器) 

(4)时钟。 

1.2 CPU跟内存、虚拟内存、硬盘的关系?

(1)CPU要调用的程序和数据来自硬盘,但是CPU又不能直接读写硬盘上的系统、程序和数据,所以必须先将硬盘的内容存储在内存中,才能被CPU读写。 

(2)因此内存是一个中转站,对计算机的运行速度有较大影响。 

(3)当系统需要的内存空间大于实际的物理内存空间时,就需要用到虚拟内存了。虚拟内存可以将部分硬盘空间模拟成内存空间,将暂时不运行的程序和不使用的数据存储在硬盘上,需要时再将其存储到内存。 

1.3 ARM结构处理器可分为哪几类?

嵌入式微处理器 

由通用计算机的CPU演变而来,位数在32位以上,具有较高的性能。 

嵌入式微控制器 

又称单片机,一般以某一种微处理器内核为核心,芯片内部集成ROM、RAM、总线、定时/ 计数器、I/O、A/D等各种必要功能和外设。 

嵌入式DSP 

硬件结构和指令进行过特殊设计,非常擅长高速实现各种数字信号处理运算(如数字滤波、频谱分析等)。 

1.4嵌入式微处理器和DSP 有什么区别?

(1)嵌入式微处理器和DSP一个偏重控制、一个偏重运算。 

(2)嵌入式微处理器外围接口丰富,标准化、通用性、功耗控制等做得很好,适用于消费电子、家用电器等控制领域。 

(3)DSP对系统结构和指令做了优化,能进行大量数据的快速计算,适用于音视频处理等领域。 

1.5 ARM处理器有哪些工作状态?ARM 指令和Thumb 指令有什么区别?

答案:

(1)ARM处理器共有ARM、Thumb/Thumb-2、调试三种状态。 

(2)ARM指令是32位的,较全面;Thumb指令是16位的,较精简。 

解读:

ARM状态 

工作于32位指令状态,所有指令均为32位。 

Thumb状态 

工作于16位指令状态,所有指令均为16位。 

Thumb-2状态 

ARM状态和Thumb状态是早期版本,近期推出的Thumb-2状态兼有 16和32位指令,具有更高的性能、更低的功耗以及更少的内存占用。具有Thumb-2技术的 ARM处理器无需在ARM和Thumb-2状态之间切换了。 

调试状态 

处理器停机调试。 


以上内容摘自专刊《嵌入式岗位笔试面试真题讲解》,该专刊不仅有真题讲解,还有经验分享,不清楚嵌入式该学什么的同学,想找嵌入式实习/正式工作的同学,都可以来看看:              


嵌入式公司推荐:华为、小米、OPPO、VIVO、荣耀、一加、CVTE、大疆、insta360影石、美的 、TCL、海信、创维、烽火、比亚迪、吉利、长安、大众、经纬恒润 、小鹏、图森未来、百度、滴滴、蔚来、理想、 联发科、 紫光展锐 、全志、寒武纪 、晶晨半导体 、汇顶、华为、中兴、浪潮 、TP-LINK、讯飞、商汤、海康威视 、浙江大华、360、小马智行、元戎启行、深信服、移动、联通、电信、旷视、四维图新、中芯国际、复旦微电子、极氪。

#arm##单片机##嵌入式##面经##电子信息工程#
全部评论

相关推荐

02-21 10:34
嵌入式软件工程师则主要负责嵌入式设备上的软件开发工作,与传统软件工程师不同。传统的软件工程师通常开发PC或服务器上运行的应用程序,所依赖的操作系统大多是Windows、Linux等,而嵌入式软件工程师的工作环境则是诸如Wince、VxWorks、Linux等嵌入式操作系统。一、嵌入式软件工程师的工作通常包括:1. 应用程序开发:根据客户需求开发嵌入式设备上的应用程序,如智能家居设备、医疗仪器的用户界面等。2. 嵌入式开发工具的使用:使用专门的开发工具,如Wince下的EVC(Embedded Visual C++)或Linux下的QT等。3. 底层软件设计:尽管嵌入式软件工程师的主要工作在上层软件,但有时也需要参与到底层驱动的设计和调试中,确保上层应用与硬件的协调。二、嵌入式硬件工程师与嵌入式软件工程师的区别1. 工作性质的区别嵌入式硬件工程师主要负责设计和搭建硬件平台,为软件工程师提供开发环境。硬件工程师的工作更像建筑师,设计并构建产品的硬件基础;而嵌入式软件工程师则像室内设计师,为产品增添功能和美感。硬件工程师的工作重点在于确保电路的正常工作以及各种外设和芯片的兼容性,他们在设计时需要考虑以下几个关键问题:- 功耗:控制电路设计的功耗,特别是在便携式设备中,这一因素尤为重要。- 电磁干扰(EMI):确保电路不会干扰其他设备,也不容易受到外部干扰的影响。- 生产可行性:电路设计不仅要满足功能需求,还需考虑生产的便捷性和成本。- 可靠性:设计要能经受住长时间的使用和环境考验。而软件工程师则专注于通过编写代码实现产品的功能,他们的主要职责包括应用程序开发、操作系统移植、以及优化软件性能等。2. 项目依赖的差异硬件的设计在整个项目中尤为关键。没有硬件,软件无法运行;但是在某些嵌入式系统中,硬件产品可以独立工作,比如简单的单片机应用无需操作系统支持。这种情况下,硬件工程师往往需要负责从硬件设计到功能实现的所有工作。而软件工程师在某些项目中可以缺席,特别是在没有复杂操作系统或用户交互界面的系统中。3. 就业形式的差异国内嵌入式软件工程师的就业市场较为广泛,培训资源也多,因此入门较为简单。硬件工程师由于门槛较高,需要深入的电路设计知识和实践经验,因此市场需求相对较少,但核心硬件开发人员的需求始终存在。一旦硬件产品定型,软件的升级和维护成本较低,因此在后期,企业会更依赖软件开发来提高产品的功能和竞争力,这也导致嵌入式软件工程师在企业中的需求量较大。我面试看的是大佬的面经,链接放下边了https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
分享
评论
4
14
分享

创作者周榜

更多
牛客网
牛客企业服务