嵌入式开发面试题2
嵌入式 面试题
嵌入式面试题一、介绍嵌入式系统嵌入式系统是一种专门设计用于特定应用的计算机系统,通常被嵌入在其他设备或系统中,以完成特定的功能。
这些系统通常运行在微处理器或微控制器上,并且具有实时性要求。
嵌入式系统广泛应用于各个领域,如汽车、通信、医疗、家电等。
二、嵌入式系统面试题1:嵌入式系统的特点1. 实时性要求:嵌入式系统通常需要满足实时性要求,能够在给定的时间范围内响应和执行任务。
2. 资源受限:由于嵌入式系统的应用场景多样,往往会受到资源限制,包括处理器性能、存储器容量、功耗等。
3. 可靠性要求:嵌入式系统在应用中通常需要长时间运行,并且对系统的稳定性和可靠性要求较高。
4. 实时操作系统:嵌入式系统通常使用实时操作系统(RTOS)来满足实时性要求,并提供多任务处理和资源管理等功能。
5. 低功耗设计:嵌入式系统往往需要在有限的电源条件下运行,因此需要对功耗进行优化设计,延长系统的使用寿命。
三、嵌入式系统面试题2:嵌入式软件开发1. 嵌入式软件开发语言:嵌入式系统的软件通常使用C、C++等高级语言进行开发,也有部分系统使用汇编语言进行优化。
2. 嵌入式系统的BOOT流程:嵌入式系统的启动流程通常包括上电初始化、引导加载、系统初始化等步骤。
3. 驱动程序开发:嵌入式系统中的各种外设通常需要开发相应的驱动程序来进行控制和管理。
4. 通信协议:嵌入式系统通常需要使用各种通信协议与其他系统进行交互,如UART、SPI、I2C等。
5. 调试和测试:嵌入式系统的软件开发过程中需要进行调试和测试,以保证系统的正常运行和稳定性。
四、嵌入式系统面试题3:硬件相关知识1. 微控制器和微处理器:嵌入式系统通常由微控制器或微处理器作为核心部件,进行数据处理和控制操作。
2. 存储器:嵌入式系统中的存储器包括闪存、存储芯片等,用于存储程序代码和数据。
3. 外设接口:嵌入式系统通常需要与各种外设进行连接和通信,如显示屏、传感器、通信模块等。
嵌入式开发人员面试题目
1 / 2姓名:__________ 电话:_________________ 期望薪水:_______ 一,C 语言基础语言基础1,用变量a 给出下面的定义给出下面的定义a) 一个整型数(An integer )b)一个指向整型数的指针(一个指向整型数的指针( A pointer to an integer )c)一个指向指针的的指针,它指向的指针是指向一个整型数( A pointer to a pointer to an integer )d)一个有10个整型数的数组(个整型数的数组( An array of 10 integers )e) 一个有10个指针的数组,该指针是指向一个整型数的。
(An array of 10 pointers to integers ) f) 一个指向有10个整型数数组的指针(个整型数数组的指针( A pointer to an array of 10 integers )g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function thattakes an integer as an argument and returns an integer )h) 一个有10个指针的数组,个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数(该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an integer )2,关键字static 的作用是什么?的作用是什么?3,关键字const 有什么含意?有什么含意?4,关键字volatile 有什么含意?5,中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准C 支持中断。
嵌入式面试题目及答案
嵌入式面试题目及答案嵌入式系统是当今科技领域中不可或缺的一部分,它在我们日常生活和工业生产中起到了重要的作用。
而嵌入式系统的开发与设计需要专业的技术和知识,因此在面试过程中,相应的题目是必不可少的。
本文将为您提供一些常见的嵌入式面试题目并给出相应的答案,以供参考。
1. 请简要解释什么是嵌入式系统?嵌入式系统(Embedded System)是一种特定功能电子设备中的计算机系统,它嵌入到其他产品中,以执行特定的任务或控制特定的功能。
嵌入式系统的关键特点包括实时性、低功耗、体积小、成本低以及对于硬件和软件的高度整合。
2. 嵌入式系统与通用计算机有何区别?嵌入式系统与通用计算机之间存在以下区别:- 功能:嵌入式系统的设计旨在执行特定任务,如控制、数据采集、嵌入式通信等,而通用计算机则具备更多的通用性,能够执行各种不同的任务。
- 硬件:嵌入式系统通常使用嵌入式处理器,集成了所需的硬件接口和外设,以适应特定的功能要求,而通用计算机则侧重于提供更高的计算和存储能力。
- 实时性:嵌入式系统通常需要满足实时性需求,能够及时响应输入和输出,而通用计算机则更关注处理复杂的用户交互和计算任务。
3. 请列举一些常见的嵌入式操作系统。
常见的嵌入式操作系统包括:- 实时操作系统(RTOS):如FreeRTOS、VxWorks、QNX等,具有实时性、可靠性和可嵌入性等特点。
- Linux嵌入式系统:如Linux内核、Debian、Buildroot等,提供了完整的开发环境和强大的功能。
- 嵌入式Windows系统:如Windows CE、Windows Embedded等,提供了Windows桌面操作系统的子集。
4. 请简要介绍一下嵌入式系统的调试方法。
常用的嵌入式系统调试方法包括:- 打印调试:通过在代码中插入打印语句,输出调试信息,用于查看程序流程以及变量的值。
- 软件仿真调试:使用仿真器或调试器连接到目标硬件上,在宿主机上进行调试操作,方便观察和跟踪代码的执行。
嵌入式系统工程师常见面试题
嵌入式系统工程师常见面试题在嵌入式系统工程领域,面试是企业筛选合适人才的重要环节。
以下是一些常见的嵌入式系统工程师面试题,涵盖了硬件、软件、操作系统等多个方面。
一、硬件相关1、请简述一下电阻、电容、电感的基本特性及其在电路中的作用。
电阻主要用于限制电流、分压和产生热量。
电容可以存储电荷,用于滤波、耦合和定时等电路。
电感则能储存磁场能量,常用于滤波、谐振和变压器等。
2、解释一下什么是 PCB(印刷电路板)布线的阻抗控制,以及为什么它很重要?PCB 布线的阻抗控制是确保信号在传输过程中保持稳定和减少反射的关键。
不同的信号速率和频率对阻抗有特定要求。
如果阻抗不匹配,会导致信号失真、噪声增加和传输错误,影响系统的性能和可靠性。
3、谈谈你对ADC(模数转换器)和DAC(数模转换器)的理解,包括它们的工作原理和主要性能指标。
ADC 将模拟信号转换为数字信号,工作原理有逐次逼近型、积分型等。
主要性能指标包括分辨率、转换精度、转换速度等。
DAC 则相反,将数字信号转换为模拟信号。
其性能指标类似 ADC,但还包括建立时间等。
4、如何降低系统的功耗,特别是在嵌入式设备中?可以从多个方面入手,如选择低功耗的芯片和器件,优化电路设计,合理设置电源管理模式,采用动态电压频率调整技术,以及在软件中控制硬件模块的电源开关等。
二、软件相关1、解释一下什么是中断,以及在嵌入式系统中如何处理中断?中断是指 CPU 在执行正常程序时,由于外部事件或内部异常而暂停当前程序,转而去执行相应的中断服务程序。
在嵌入式系统中,需要设置中断向量表,配置中断优先级,编写中断服务程序,并确保中断处理的及时性和准确性。
2、描述一下你对实时操作系统(RTOS)的理解,以及它与普通操作系统的区别。
实时操作系统强调任务的确定性和及时性,能在规定的时间内完成关键任务。
与普通操作系统相比,它具有更短的中断响应时间、更严格的任务调度策略和更高的可靠性。
3、谈谈你对 C 和 C++在嵌入式系统开发中的应用和优缺点。
嵌入式系统工程师面试题
嵌入式系统工程师面试题在当今科技迅速发展的时代,嵌入式系统工程师的需求日益增长。
对于招聘企业来说,如何筛选出合适的嵌入式系统工程师至关重要。
以下是一些常见的嵌入式系统工程师面试题,希望能帮助企业找到理想的人才。
一、基础知识1、请简要介绍一下嵌入式系统的概念和特点。
嵌入式系统是一种以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。
其特点包括专用性强、实时性高、资源受限、可靠性高、软件固化等。
2、谈谈你对微控制器(MCU)和微处理器(MPU)的理解,以及它们在嵌入式系统中的应用场景。
微控制器通常集成了处理器核心、存储器、I/O 接口等,具有体积小、成本低、功耗低的特点,适用于控制简单、成本敏感的应用,如家电控制、小型仪器仪表等。
微处理器则具有更强大的计算能力和更丰富的接口,常用于复杂的计算任务和高性能的嵌入式系统,如智能手机、平板电脑等。
3、解释一下什么是实时操作系统(RTOS),并列举几种常见的RTOS。
实时操作系统是指能够在规定的时间内完成特定任务的操作系统。
它具有响应迅速、确定性高的特点。
常见的 RTOS 有 FreeRTOS、RTX、uC/OS 等。
4、简述嵌入式系统中常见的存储设备类型,如 Flash、EEPROM、SRAM 等,并说明它们的特点和应用场景。
Flash 具有非易失性、大容量、成本低的特点,常用于存储程序和数据。
EEPROM 可以按字节擦写,适用于存储少量需要频繁修改的数据。
SRAM 速度快,但成本高、容量小,常用于高速缓存。
二、编程语言和开发工具1、您在嵌入式系统开发中常用的编程语言是什么?请分享一些使用该语言的经验和技巧。
C 和C++是嵌入式系统开发中常用的编程语言。
在使用C 语言时,要注意指针的正确使用,避免内存泄漏和越界访问。
C++中的面向对象特性可以提高代码的可维护性和可扩展性,但要注意资源的管理。
2、谈谈你对嵌入式系统开发中交叉编译的理解,以及如何进行交叉编译。
嵌入式软件工程师面试题
嵌入式软件工程师面试题1. 题目描述:嵌入式软件工程师是一个专业领域的岗位,需要有扎实的编程技能和深厚的硬件知识。
本文通过提供一些典型的嵌入式软件工程师面试题,帮助读者了解该岗位要求以及面试过程中可能遇到的问题。
2. 问题一:请简要介绍什么是嵌入式系统。
嵌入式系统是指集成了计算机硬件和软件的特定功能的计算机系统。
与通用计算机系统不同,嵌入式系统通常被用于特定应用领域,具有紧凑的尺寸、低功耗、实时性和可靠性等要求。
3. 问题二:嵌入式软件工程师的主要职责是什么?嵌入式软件工程师的主要职责包括:- 设计、开发和测试嵌入式软件系统;- 理解硬件平台和相关的技术要求;- 编写高效的代码并进行性能优化;- 解决系统的稳定性和兼容性问题;- 进行单元测试和集成测试。
4. 问题三:请列举一些您在嵌入式软件开发中常用的编程语言和工具。
嵌入式软件开发中常用的编程语言包括:- C/C++:C语言和C++语言是嵌入式软件开发的主要编程语言,具有高效、灵活和跨平台的特性;- Assembly语言:用于对硬件进行底层编程的语言,可以直接操作寄存器和内存;- Python:用于快速原型开发、脚本编写和测试等。
常用的嵌入式软件开发工具包括:- 嵌入式集成开发环境(IDE):如Eclipse、IAR Embedded Workbench等,用于编写、编译和调试嵌入式软件;- 仿真器和调试器:如JTAG、OpenOCD等,用于调试和监控嵌入式系统;- 版本控制工具:如Git、SVN等,用于团队协作和代码版本管理。
5. 问题四:请谈谈您在嵌入式系统开发中遇到的最大挑战是什么?您是如何解决的?在嵌入式系统开发中,最大的挑战之一是硬件与软件的协同工作。
硬件和软件开发之间需要密切合作,以确保系统的正确性和稳定性。
解决这个问题的关键在于团队合作和良好的沟通。
我在项目中与硬件工程师进行频繁的讨论和协作,以确保软件与硬件的接口设计是一致的。
此外,我也学习了硬件方面的基础知识,能够更好地理解硬件需求和限制,从而更好地进行软件开发。
嵌入式软件工程师面试题
嵌入式软件工程师面试题嵌入式软件工程师主要从事嵌入式软件开发工作。
涉及应用层以及底层软件开发和设计工作。
下面就由店铺为大家介绍一下嵌入式软件工程师面试题的文章,欢迎阅读。
嵌入式软件工程师面试题篇11、将一个链表逆序LinkList *reverse(LinkList *head){LinkList *p1,*p2 =NULL,*p3 =NULL;if(head ==NULL||head->next ==NULL)return head;p1 =head->next;while(p1!=NULL){p3 =p1->next;p1->next =p2;p2 =p1;p1 =p3;}head->next =p2;// head = p2;return head;}2、计算一个字节里(byte)里面有多少bit被置1int cc =c;while(i++<8){if((cc&1)==1){count++;}cc =cc>>1;}return count;}int main(){const int c =0xcf;printf("%d\n",comb(c));return1;}嵌入式软件工程师面试题篇21、在一个字符串中找到可能的最长的子字符串memcpy(substring,&shortstring[j],i);substring[i]='\0';if(strstr(longstring,substring)!=NULL)return substring;}}return NULL;}void main(void){char*str1 ="aocdfe";char*str2 ="pmcdfa";char*comman =NULL;if(strlen(str1)>strlen(str2))comman=commanstring(str2,str1);elsecomman =commanstring(str1,str2);printf("the longest comman string is:%s\n",comman); }2、字符串转换为整数}void IntegerToString(char s[],int n){int i=0,sign;if((sign=n)<0)//如果是负数,先转成正数n=-n;do//从个位开始变成字符,直到最高位,最后应该反转{s[i++]=n%10+'0';}while((n=n/10)>0);//如果是负数,补上负号if(sign<0)s[i++]='-';s[i]='\0';//字符串结束reverse(s);}void main(){int m;char c[100];m =215;IntegerToString(c,m);printf("integer = %d string = %s\n",m,c);}嵌入式软件工程师面试题篇31、整数转换为字符串int rtn =0;// 用作返回for(i =strlen(str)-1;i >=0;i--) {rtn +=(str[i]-'0')*weight;//weight *=10;// 增重}return rtn;}void main(){char str[32];printf("Input a string :");gets(str);printf("%d\n",Atoi(str));}2、将一个字符串逆序。
嵌入式开发面试题
嵌入式开发面试题1.你平时会看哪些方面的书籍?喜欢浏览哪些网站?2.当你遇到问题时通常如何解决?3.谈谈你对.Net与Java的看法4.你对公司要求加班有什么样的看法?5.简述你对XML Web Service 的原理的认识?答:利用SOAP(简单对象访问协议)在http上执行远程方法的调01. 为什么要在一个团队中开展软件测试工作?因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。
在测试的过程发现软件中存在的问题,及时让开发人员得知1. 有没有一个工具可以帮助查找python的bug和进行静态的代码分析?有,PyChecker是一个python代码的静态分析工具,它可以帮助查找python代码的bug, 会对代码的复杂度和格式提出警告Pylint是另外一个工具可以进行coding standard检查。
2. 如何在一个functio1.抽象类和接口有什么异同?10分答:接口用于规范,抽象类用于共性。
接口中只能声明方法,属性,事件,索引器。
而抽象类中可以有方法的实现,也可以定义非静态的类变量。
抽象类是类,所以只能被单继承,但是接口却可以一次实现多个。
抽象类可以提供某些方法的解:#include #include struct fenshu { int fz; int fm; }; main() { int I; struct fenshu f1,f2,result; printf(“input f1.fz:”); scanf(“%d”, printf(“input f1.fm:”); scanf(“%d”, printf(“input f2.fz:”); scanf(“input f2.fz); printf(“iEJB能为我们提供中间件服务Remote Method Invocations(RMI)远程方法调用(跨越JVM,网络,实现一个对象调用另一个对象的方法) Load Balancing负载均衡(如多个Tomcat组成一个Server集群)。
嵌入式系统工程师常见面试题
嵌入式系统工程师常见面试题嵌入式系统工程师是一个需要具备深厚技术功底和实践经验的职业。
在面试过程中,面试官通常会提出一系列问题来考察应聘者的专业知识、技能和解决问题的能力。
以下是一些常见的面试题:1、请简要介绍一下嵌入式系统的概念和特点。
嵌入式系统是一种以应用为中心,以计算机技术为基础,软硬件可裁剪,适应对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
其特点包括:专用性强,通常针对特定的应用场景进行设计和优化;实时性要求高,需要在规定的时间内完成特定的任务;资源受限,如处理器性能、内存容量、存储空间等相对有限;功耗低,以满足在电池供电或能源有限的环境中长时间运行的需求;可靠性高,能够在恶劣的环境下稳定工作。
2、谈谈你对嵌入式操作系统的了解,列举几种常见的嵌入式操作系统。
嵌入式操作系统是运行在嵌入式硬件平台上的操作系统,它负责管理系统资源、提供任务调度、内存管理、设备驱动等功能。
常见的嵌入式操作系统有:μC/OSII,具有小巧、开源、可裁剪的特点,适用于小型嵌入式系统;FreeRTOS,免费开源,具有良好的可移植性和扩展性;Linux 嵌入式版本,如 Embedded Linux,功能强大,资源丰富,适用于复杂的嵌入式应用;VxWorks,具有高实时性和可靠性,常用于航空航天、军事等领域。
3、什么是中断?在嵌入式系统中如何处理中断?中断是指计算机在执行程序的过程中,由于外部事件或内部异常等原因,需要暂停当前程序的执行,转而执行相应的中断处理程序。
在嵌入式系统中,处理中断通常包括以下步骤:首先,硬件产生中断信号;然后,处理器响应中断,保存当前程序的上下文(如寄存器的值);接着,根据中断向量表跳转到相应的中断处理程序;在中断处理程序中完成对中断事件的处理;最后,恢复之前保存的上下文,继续执行被中断的程序。
4、请描述一下嵌入式系统中的存储设备,如 Flash 和 SRAM 的特点和用途。
Flash 存储器具有非易失性,即掉电后数据不会丢失。
嵌入式软件开发面试题
嵌入式软件开发面试题近年来,随着科技的不断发展,嵌入式系统的需求日益增加。
作为一种在各个领域都有广泛应用的技术,嵌入式软件的开发成为了众多公司和组织在招聘中关注的重点。
本文将介绍一些常见的嵌入式软件开发面试题,帮助大家更好地准备面试。
一、嵌入式系统简介1. 请简述嵌入式系统的定义和特点。
答:嵌入式系统是一种具有特定功能的计算机系统,包含在更复杂的设备或系统中。
其主要特点包括紧凑性、实时性、低功耗等。
2. 嵌入式系统与普通计算机系统有何区别?答:嵌入式系统主要用于特定任务,通常不具备人机交互接口。
而普通计算机系统则面向用户,并具备较强的通用性。
二、嵌入式软件开发基础1. 嵌入式软件开发语言有哪些?请简要介绍其中一种。
答:常见的嵌入式软件开发语言包括C、C++、Python等。
以C语言为例,它是一种高级语言,具有结构化的特点,适用于嵌入式系统对性能和资源需求较高的场景。
2. 请简述嵌入式软件开发流程。
答:嵌入式软件开发流程通常包括需求分析、设计、编码、调试与测试、验证与认证、上线等阶段。
其中,需求分析阶段是明确软件功能和性能需求的过程,设计阶段决定软件架构和模块划分,编码阶段根据设计实现具体代码,调试与测试阶段确保软件的正确性和稳定性。
三、嵌入式系统调试与性能优化1. 请简述嵌入式系统的调试方法。
答:嵌入式系统的调试方法主要包括使用调试器、打印调试信息、性能分析工具等。
调试器能够实时监控程序运行的状态,找出问题所在;打印调试信息是通过输出相关信息到终端或日志文件中,用于分析程序运行过程;性能分析工具能够帮助开发者定位性能瓶颈,优化程序的性能。
2. 如何进行嵌入式系统的性能优化?答:嵌入式系统的性能优化可以从多个方面入手,包括算法优化、代码优化、资源利用优化等。
算法优化可以通过改进算法的复杂度来提升性能;代码优化可以通过减少计算量、避免冗余代码等方式提高效率;资源利用优化主要是针对系统的硬件资源进行合理规划,充分利用资源。
嵌入式系统工程师面试题及答案
嵌入式系统工程师面试题及答案一、基础知识1、什么是嵌入式系统?答:嵌入式系统是一种以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。
它通常嵌入在其他设备或产品中,用于控制、监测或执行特定的任务。
2、嵌入式系统的特点有哪些?答:嵌入式系统具有以下特点:专用性强:针对特定应用需求进行定制开发。
实时性要求高:需要在规定的时间内完成任务响应。
资源受限:处理器性能、内存容量、存储等资源相对有限。
功耗低:通常要求在电池供电或低功耗环境下长时间运行。
可靠性高:在恶劣环境下稳定工作,故障率低。
3、列举几种常见的嵌入式处理器架构。
答:常见的嵌入式处理器架构有:ARM、MIPS、PowerPC、X86 等。
4、什么是中断?中断处理的过程是怎样的?答:中断是指计算机在执行程序过程中,遇到需要紧急处理的事件时,暂停当前程序的执行,转而去执行相应的中断服务程序。
中断处理的过程通常包括:中断请求、中断响应、中断处理、中断返回。
二、操作系统1、列举几种常见的嵌入式操作系统。
答:常见的嵌入式操作系统有:Linux、μC/OSII、FreeRTOS、VxWorks 等。
2、实时操作系统和非实时操作系统的区别是什么?答:实时操作系统对任务的响应时间有严格的要求,必须在规定的时间内完成任务处理,否则可能导致系统故障或错误。
非实时操作系统则对任务响应时间没有严格限制,更注重系统的资源利用率和功能完整性。
3、简述嵌入式操作系统的任务调度算法。
答:常见的任务调度算法有:优先级调度:根据任务的优先级来决定任务的执行顺序,优先级高的任务先执行。
时间片轮转调度:将 CPU 时间分成固定的时间片,每个任务轮流获得时间片执行。
混合调度:结合优先级和时间片轮转的调度方式。
三、编程语言1、嵌入式系统中常用的编程语言有哪些?答:C 语言和C++语言是嵌入式系统中最常用的编程语言。
此外,还有汇编语言、Python 等在特定场景下也会使用。
嵌入式软件工程师校招面试题目
嵌入式软件工程师校招面试题目嵌入式软件工程师校招面试题目:
一、操作系统
1. 什么是操作系统?
2. 请简述操作系统的功能和特点。
3. 什么是实时操作系统?
4. 实时任务和非实时任务有什么区别?
5. 请简述操作系统的各个组成部分。
6. 进程和线程的区别是什么?
7. 阻塞和非阻塞的I/O操作分别是什么?
8. 请简述Linux的进程管理机制。
二、C语言
1. 什么是指针?
2. 指针有什么作用?
3. 字符串和字符数组的区别是什么?
4. 请简述C语言中常用的循环结构。
5. 动态内存分配的函数是哪些?它们的含义是什么?
6. 请简述C语言中常用的数据结构。
三、嵌入式系统开发
1. 请简述嵌入式系统开发的基本流程。
2. 嵌入式系统中常用的嵌入式处理器有哪些?
3. 嵌入式系统中的外设有哪些?
4. 请简述中断和异常的区别。
5. 嵌入式系统中,如何实现时钟和计时?
6. Please简述嵌入式系统中常用的通信方式和通信协议。
四、硬件知识
1. 请简述CPU和GPU的区别。
2. 什么是内外存储器?
3. 什么是固态硬盘?它的优缺点是什么?
4. 常见的传感器有哪些?它们的作用是什么?
5. 常用的通信接口有哪些?
以上是嵌入式软件工程师校招面试的主要问题列表,在应聘者可以在针对这些问题进行针对性复习和准备,提升自己的应聘竞争力。
嵌入式面试经典100题
嵌入式面试经典100题嵌入式系统是当今快速发展的领域之一。
面试官通常会问一些经典的问题来评估求职者的知识和技能。
以下是 100 个嵌入式面试经典问题,有助于准备嵌入式面试。
1. 什么是嵌入式系统?2. 嵌入式系统有哪些组成部分?3. 嵌入式系统通常用于哪些领域?4. 什么是微控制器?5. 微控制器有哪些类型?6. 解释一下位运算符。
7. 什么是布尔运算?8. 解释一下存储器分段。
9. 什么是中断?10. 解释一下中断向量表。
11. 什么是浮点数?12. 解释一下浮点数运算。
13. 什么是传感器?14. 解释一下传感器工作原理。
15. 什么是执行器?16. 解释一下执行器工作原理。
17. 什么是总线?18. 解释一下总线工作原理。
20. 解释一下串口工作原理。
21. 什么是以太网?22. 解释一下以太网工作原理。
23. 什么是蓝牙?24. 解释一下蓝牙工作原理。
25. 什么是 Wi-Fi?26. 解释一下 Wi-Fi 工作原理。
27. 什么是 LED?28. 解释一下 LED 工作原理。
29. 什么是 LCD?30. 解释一下 LCD 工作原理。
31. 什么是纽扣电池?32. 解释一下纽扣电池工作原理。
33. 什么是定时器?34. 解释一下定时器工作原理。
35. 什么是串口通信?36. 解释一下串口通信原理。
37. 什么是 FPGA?38. 解释一下 FPGA 工作原理。
39. 什么是 PLC?40. 解释一下 PLC 工作原理。
42. 解释一下触摸屏工作原理。
43. 什么是传感器数据采集?44. 解释一下传感器数据采集原理。
45. 什么是 PWM?46. 解释一下 PWM 工作原理。
47. 什么是功率放大器?48. 解释一下功率放大器工作原理。
49. 什么是串口通信协议?50. 解释一下串口通信协议原理。
51. 什么是温度传感器?52. 解释一下温度传感器工作原理。
53. 什么是湿度传感器?54. 解释一下湿度传感器工作原理。
嵌入式c 面试题
1、在嵌入式C开发中,关于volatile关键字的作用,以下描述正确的是?A. 用于定义常量B. 告诉编译器该变量可能会被意外改变,防止编译器过度优化(答案)C. 用于定义指针类型D. 用于定义数组类型2、在嵌入式系统中,通常使用哪种调试方法来跟踪程序执行过程中的变量和函数调用?A. 使用高级语言调试器B. 使用JTAG接口进行调试(答案)C. 使用文本编辑器进行代码审查D. 使用模拟器运行代码3、以下哪项不是嵌入式系统常用的通信接口?A. SPIB. I2CC. HDMI(答案)D. UART4、在嵌入式C编程中,以下哪种数据结构常用于实现任务调度?A. 链表B. 队列(答案)C. 集合D. 树5、关于嵌入式系统中的中断处理,以下描述错误的是?A. 中断是硬件或软件发出的信号,用于通知CPU有事件需要处理B. 中断服务程序(ISR)是响应中断而执行的代码C. 中断向量表是存储中断服务程序地址的数组D. 所有的中断都必须由操作系统来管理(答案)6、在嵌入式系统中,为了节省存储空间,通常会使用哪种类型的库?A. 动态链接库B. 静态链接库(答案)C. 共享库D. 运行时库7、以下哪项不是嵌入式系统低功耗设计的方法?A. 使用低功耗的硬件组件B. 优化软件算法以减少CPU的使用率C. 增加系统的时钟频率(答案)D. 使用睡眠模式来减少功耗8、在嵌入式C编程中,以下哪个宏定义常用于防止头文件被重复包含?A. #define ONCEB. #pragma onceC. #ifndef, #define, #endif(答案)D. #define HEADER。
嵌入式面试题大全
嵌入式面试题大全
嵌入式面试题涉及的知识面广泛,包括嵌入式系统的基础知识、C/C++语言、操作系统、电路和电子技术等。
以下是一些嵌入式面试中常见的题目:
1. 请简述嵌入式系统的定义和特点。
2. 什么是实时操作系统?请列举几个常见的实时操作系统。
3. 描述一下嵌入式系统中常用的数据结构和算法。
4. 请简述嵌入式软件开发的一般流程。
5. 什么是嵌入式系统的低功耗设计?为什么它很重要?
6. 请简述嵌入式系统中常用的通信协议。
7. 请简述嵌入式系统中常用的硬件接口。
8. 如何进行嵌入式系统的电源管理?
9. 请简述嵌入式系统中常用的软件架构。
10. 如何进行嵌入式系统的性能测试和优化?
11. 请简述嵌入式系统中常用的开发工具和调试方法。
12. 如何进行嵌入式系统的安全设计和保护?
13. 请简述嵌入式系统中的常见故障和解决方法。
14. 如何进行嵌入式系统的可维护性和可靠性设计?
15. 请简述嵌入式系统中的中断处理和任务调度。
16. 如何进行嵌入式系统的硬件设计和软件设计协同工作?
17. 请简述嵌入式系统中常用的异步通信方法。
18. 如何进行嵌入式系统的资源管理和内存优化?
19. 请简述嵌入式系统中的多线程编程和多任务管理。
20. 如何进行嵌入式系统的性能分析和优化?
以上是一些常见的嵌入式面试题,当然具体的题目还会根据具体的岗位和要求有所不同。
建议在准备面试时,除了掌握基础知识和技能外,还要了解相关公司的业务和技术方向,以及行业的发展趋势和最新技术动态。
嵌入式软件开发面试题
嵌入式软件开发面试题嵌入式软件开发是一种专门针对嵌入式系统的软件开发方法,相较于传统的软件开发,嵌入式软件开发更加注重对硬件平台的适配和资源的优化。
在嵌入式软件开发行业中,招聘过程中会涉及到一些特定的面试题,以考察应聘者的技术能力和解决问题的能力。
以下将介绍一些常见的嵌入式软件开发面试题。
一、操作系统相关题目1. 请介绍一下你对实时操作系统(RTOS)的理解及其特点。
答:实时操作系统是一种能够保证任务在严格时间要求下进行调度的操作系统。
其特点是:能够快速响应外部事件;能够处理实时数据流;能够优先级调度任务;能够提供可预测的延迟。
2. 请解释一下进程和线程的区别。
答:进程是操作系统中资源分配和调度的基本单位,拥有独立的地址空间和系统资源;线程是进程中的一个独立执行单元,多个线程可以共享同一个进程的资源。
二、编程相关题目1. 请编写一个C语言函数,实现对一个数组进行升序排序。
答:```cvoid bubbleSort(int arr[], int n) {for (int i = 0; i < n-1; i++) {for (int j = 0; j < n-i-1; j++) {if (arr[j] > arr[j+1]) {int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}}```2. 请编写一个函数,计算一个整数的阶乘。
答:```cint factorial(int n) {if (n == 0 || n == 1) {return 1;} else {return n * factorial(n-1);}}```三、硬件相关题目1. 请介绍一下嵌入式系统中常用的总线协议有哪些,它们有什么特点?答:常用的总线协议有SPI(Serial Peripheral Interface)、I2C (Inter-Integrated Circuit)、CAN(Controller Area Network)等。
字节跳动嵌入式面试题
【一面】1.介绍一下自己2.介绍一个数据驱动的项目(针对项目问了很多问题,诸如为什么这样设计,有什么地方想改善)3.平时经常使用什么类型的产品a.有什么想要改善的地方--- 我介绍自己最近一直在研究字节的新产品gogokid,并且认为first time user experience做得不是特别好,希望通过增加新手教程来改善b.具体怎么确定改善的不错(典型的ab实验导向)--- 确定实验目标:增加新手教程的目的是希望改善用户第一次登陆使用产品的体验,接下来需要思考那些kpi可以反应用户的体验,比如d1 retention, d7 retention--- 设计实验:ab实验的设计步骤--- 评估结果【二面】1.介绍一下自己2.介绍一个数据驱动的项目3.如果想提高你公司的gmv(我之前在一家wish做da),你想怎么做4.给抖音设计一个数据看版,你想怎么设计(我的回答事后觉得中规中矩,仅供大家参考并讨论哈)a.理清抖音的产品逻辑(如果把抖音看成一个供需市场,有创作者提供视频,有更多的消费者看视频,并且消费者通过点赞评论转发与创作者交互,同时平台从中变现,同时注意产品的时间基础,比如抖音属于日用产品,那么应该多关注日用指标)b.围绕产品的关联方,设计相对应的指标进行观测--- 创作者:每一天新视频的产生量,每一天的创作者;--- 消费者:DAU,Time Spent/DAU, Number of Sessions;--- 交互:评论数量,点赞数量--- 平台:收入最后对于每一个产品都提前做好segmentation,比如DAU在设计的时候分不同的用户年龄,用户性别,地区,等等。
便于之后分析或者查找异常值5.我们发现一部分用户的参与度并不好,该怎么去改善呢(这道题我感觉自己答得特别不好,先把我当时答案列出来,再列出我后来重新想的答案,供大家讨论。
友情提示:这属于一个非常典型的四类数据分析中的描述性分析,诊断类分析和预测性分析)我的答案:--- 找到平台参与度最高的10%或5%的用户,假设一些影响他们参与度高的因素,然后通过描述性数据分析寻找相关性(注意,这里只是寻找相关性,因果性只能通过ab实验才能被验证)--- 确定一些因素后,赋予到并不engage的用户上,设计一些ab实验,探究效果这里面试官追问,可不可以不通过ab实验,我给出的回答挺差的,我希望通过找到一些曾经不engage,后来非常engage的用户,看看改变他们的因素是不是我们一开始假设的因素。
嵌入式系统工程师面试题及答案
嵌入式系统工程师面试题及答案在当今科技迅速发展的时代,嵌入式系统工程师扮演着至关重要的角色。
以下是一些常见的嵌入式系统工程师面试题及答案,希望能对您有所帮助。
一、基础知识1、什么是嵌入式系统?答案:嵌入式系统是一种以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。
它通常嵌入在其他设备或产品中,用于控制、监测或执行特定的任务。
2、嵌入式系统的特点有哪些?答案:嵌入式系统具有以下特点:专用性强:针对特定的应用需求进行设计和优化。
实时性要求高:能够在规定的时间内完成任务响应。
资源受限:包括处理器性能、内存容量、存储资源等方面。
功耗低:以满足移动或电池供电设备的长时间运行需求。
可靠性高:在恶劣环境下稳定工作。
3、列举几种常见的嵌入式处理器架构。
答案:常见的嵌入式处理器架构有 ARM、MIPS、PowerPC 等。
4、什么是中断?中断的作用是什么?答案:中断是指计算机在执行程序过程中,遇到突发事件时,暂停当前程序的执行,转而去处理突发事件,处理完毕后再返回原程序继续执行。
中断的作用主要是提高系统的实时性和效率,能够及时响应外部事件。
二、编程语言与开发工具1、嵌入式系统中常用的编程语言有哪些?答案:在嵌入式系统中,常用的编程语言包括 C、C++、汇编语言等。
C 语言因其高效、灵活、可移植性好等优点,成为嵌入式开发的主要语言。
2、简述 C 语言中指针的作用。
答案:指针是 C 语言中的一个重要概念,它的作用主要有:可以直接访问内存地址,实现对内存的灵活操作。
用于数组、函数、结构体等数据类型的操作,提高程序的效率。
实现动态内存分配,如使用 malloc 和 free 函数。
3、谈谈你对嵌入式操作系统的了解,列举几种常见的嵌入式操作系统。
答案:嵌入式操作系统是专门为嵌入式系统设计的操作系统,具有体积小、实时性强、可裁剪等特点。
常见的嵌入式操作系统有μC/OSII、FreeRTOS、Linux 嵌入式版等。
c语言嵌入式面试题
下面是一些常见的C语言嵌入式面试题:
1. 什么是嵌入式系统?嵌入式系统与普通计算机系统有何区别?
2. 在嵌入式系统中,volatile关键字的作用是什么?举一个使用volatile的例子。
3. 解释一下指针和数组之间的关系。
如何通过指针访问数组元素?
4. 简要解释下面的代码段的输出结果:
```
int i = 0;
while (i < 5) {
printf("%d ", i++);
if (i == 3) continue;
printf("%d ", i);
}
```
5. 在C语言中,const关键字的作用是什么?它与#define有什么区别?
6. 请解释static关键字在函数和变量中的使用。
7. 解释堆(Heap)和栈(Stack)的区别,及它们在嵌入式系统中的应用。
8. 什么是中断?在嵌入式系统中,为什么需要中断?
9. 请解释C语言中的位域(Bit-fields)是什么以及它们的应用场景。
10. 解释下面的代码段的功能:
```
#define SET_BIT(reg, bit_pos) (reg |= (1 << bit_pos))
#define CLEAR_BIT(reg, bit_pos) (reg &= ~(1 << bit_pos))
#define GET_BIT(reg, bit_pos) ((reg >> bit_pos) & 1)
```。
嵌入式软件工程师经典面试题(附答案)(二)
嵌⼊式软件⼯程师经典⾯试题(附答案)(⼆)⼀、基本介绍嵌⼊式系统是以应⽤为中⼼,以计算机技术为基础,并且软硬件可裁剪,适⽤于应⽤系统对功能、可靠性、成本、体积、功耗有严格要求的专⽤计算机系统。
它⼀般由、外围硬件设备、以及⽤户的应⽤程序等四个部分组成,⽤于实现对其他设备的控制、监视或管理等功能。
嵌⼊式软件⼯程师就是编写嵌⼊式系统的⼯程师。
⼆、职业要求应具备哪些能⼒1.最重要的是C语⾔编程,以及C++,这个与你读程,应⽤,开发项⽬,做系统移植息息相关;2.操作系统: LINUX,WINCE等,⾄少学习过⼀种,并且还需要对些基础知识有蛮多的了解;3.对ARM,FPGA,DSP等这些硬件⽐较了解。
这是最常规的条件当然,⼀些基本素质,像英语能⼒,团队协作能管理,也很重要。
三、经典⾯试题1.嵌⼊式系统中经常要⽤到⽆限循环,如何⽤C编写死循环?while(1){}或者for(;;)2.程序的局部变量存在于哪⾥,全局变量存在于哪⾥,动态申请数据存在于哪⾥?程序的局部变量存在于栈区;全局变量存在于静态区;动态申请数据存在于堆区3.关键字const有什么含义?1)只读。
2)使⽤关键字const也许能产⽣更紧凑的代码。
3)使编译器很⾃然地保护那些不希望被改变的参数,防⽌其被⽆意的代码修改4.请问以下代码有什么问题?int main() {char a;char *str=&a;strcpy(str,"hello");printf(str);return 0;}没有为str分配内存空间,将会发⽣异常,问题出在将⼀个字符串复制进⼀个字符变量指针所指地址。
虽然可以正确输出结果,但因为越界进⾏内在读写⽽导致程序崩溃5.已知⼀个数组table,⽤⼀个宏定义,求出数据的元素个数?#define NTBL (sizeof(table)/sizeof(table[0]))6.写⼀个"标准"宏MIN ,这个宏输⼊两个参数并返回较⼩的⼀个?#define MIN(A,B) ((A) <= (B) ? (A) : (B))考点:1) 标识#define在宏中应⽤的基本知识。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
●8086的堆栈采取向下生长的方式,在压入时__(41)__。
(41) A. SP 先减,再压入数据 B. 先压入数据,SP 再减C. SP 先加,再压入数据D. 先压入数据,SP 再加<解析>:考查8086堆栈的基础知识。
个人觉得,堆栈是嵌入式的基础东西,自然就是考试重点,以后或许会多考单片机ARM的结构。
8086处理器均采用满递减堆栈。
入栈时,先减地址,后进数据;出栈时,先出数据,后减地址。
PUSH SRL:先将栈顶指针SP向上移两位,即SP-2,指向一个新的字存储单元,再将操作数的内容存入SP所指的字存储单元。
POP DST:将当前栈顶指针SP所指向字单元内容送向DST,然后将SP下移两位,SP-2。
参考答案:A。
●若对某一寄存器某几位清零,可用一条指令__(42)__处理。
今天老大让我针对一个面试者出些嵌入式方面的面试题,主要是想对他的技术深度进一步了解。
我就出了下面这些问题,每个问题背后都是考察一个嵌入式程序员应该具备的相关技能。
当然这些只是我的个人理解,不一定正确。
在此与大家分享,只是希望朋友们能够得到一点点启发:如何抓住每一个契机展现你的与众不同?同样的技术问题,很多人可能都能够回答得对,但有些人只是知其然而不知所以然。
其实面试官每一个问题背后通常都隐藏着一个考察点。
如果我们能够透过问题看到背后的实质,在回答出答案的时候还能够借机发挥,我相信90和100分的差别就出来了。
哪个面试官不喜欢招一个喜欢思考、能透过现象看本质的员工呢~下面我们来看看嵌入式C面试题背后到底藏何玄机~。
以下仅是个人的一些想法,欢迎大家讨论,拍砖的轻点~~////////////////////////////1、 int a=2,b=11,c=a+b++/a++; 则c值为多少?【考点】编码规范。
表面上考察你对运算符优先级的掌握程度,但实际上优先级这些玩意很难死记硬背得住?大家的疑惑不就是运算符的结合顺序么?那么如何去避免呢?c=a+((b++)/(a++))不就行了么,其实问题背后考察的是你的编码规范,如何写清晰易懂的代码,如何在一个团队中让自己的代码狠容易毫无偏差的让新人看懂~2、 Static用在全局变量定义和函数内部局部变量定义有何区别?【考点】编码规范及模块化设计。
Static变量的两个属性涉及存储位置及可见域。
在大型的程序设计中static全局变量可以有效的避免名字空间的重复及无意的变量引用,这样可以有效的提高程序设计的安全性,同时也利用模块化作业3、在程序设计中哪些地方需要使用define?如何用define来定义一年内有多少小时的常量?【考点】可移植性。
嵌入式程序设计的特点就是软硬件平台可变性,有效利用define常量可以提高程序的可移植性,这样改动方便,不易出错4、 Define宏语句和inline函数有什么区别?【考点】时空效率及宏的副作用。
嵌入式系统平台通常存储资源有限,但同时又对实时性有一定的要求,二者如何权衡需要考虑。
Define宏语句相对于函数调用能提高运行时间性能,但消耗了空间,并且不标准的宏语句定义在不标准的编码中更容易出现副作用,因此inline函数则是define语句的完美替代品。
小资金干大事正是嵌入式的终极目标!5、哪些地方可以用到const?const变量和函数输入参数用const修饰有哪些作用?【考点】程序设计可靠性。
Const只读变量可以有效克服define常量的一些弊端,如无类型安全检查。
Const形参可以有效避免程序内部更改无意的更改。
人非圣贤孰能无误,所以我们要将这些可能的失误统统交给智能的编译器,这样就可以将错误扼杀在摇篮中6、 Int,short,char在32位平台下各占几个字节?一个结构体含有int、short、char变量各一个,结构体占据的总内存空间多少?【考点】跨平台移植。
嵌入式并非x86,其硬件平台具备很大的差异性,同为int在不同的架构体系下可能占据的字节数是不一样的。
不同的平台也有不同的编译器,其在变量对齐方面可能有不同的特性。
因此在结构体定义时如何设计成员变量的顺序以有效减少占据的内存空间,以及如何填充特定字段保证访问对齐问题,都是嵌入式系统结构体设计时应该考虑的跨平台可移植性问题7、如何将unsigned int明确定义为一个32位类型?define和typedef有何区别?【考点】跨平台移植。
define和typedef都可以实现变量类型重定义,但是typedef类型的指针变量可以有效去除变量定义的二义性。
在嵌入式的工程项目中,通常为了保证数据类型的统一且便于跨平台移植时修改数据类型方便,通常都会单独定义一个数据类型的头文件,把所有用到的数据类型typedef成所熟悉的形式8、有没有用过volatile?有哪些典型的适用场合?【考点】编译优化的副作用。
通常为了提高程序运行的效率,编译器会自动进行一些优化,如将变量放在寄存器中,以减少存储器访问次数,在数据长期未变时不重新读取内存等等。
但是优化有时会带来问题,如硬件寄存器、多任务共享变量、中断和主程序共享变量,优化有可能带来数据访问不一致性的问题,因此对于这些个别变量,我们需要用volatile声明告诉编译器取消优化9、参数传递有哪些形式?寄存器和堆栈传递各有什么优缺点?【考点】编译优化、调用性能、接口设计。
每种体系结构及对应的编译器对参数传递都有自己的规定。
参数传递并非总是通过堆栈进行的,参数入栈出栈是需要耗费时间的,编译器总是尽量优化利用寄存器来传递参数,因为寄存器的访问效率要高,但当参数过多时,将放弃优化从而用栈传递参数。
因此为了提高调用性能,应尽量减少参数个数,太多时可以将所有参数重新定义为一个结构体,利用结构体指针来传递参数。
在函数接口设计时应考虑硬件平台和编译器的特性,以灵活定义参数形式10、中断服务程序设计应注意的问题?中断触发方式的选择?中断处理太长怎么办?中断处理程序如何与主应用程序交互?【考点】中断服务程序设计。
嵌入式程序最大的特点是经常需要和硬件打交道,中断是接收外界输入的典型方式,通常都决定了系统运行流程,因此如何高效不丢失的处理中断是每个嵌入式程序员应考虑的问题11、 TCP/IP和OSI七层模型是如何划分的?各层的功能,这么设计有什么好处?【考点】层次化软件设计保证可移植性。
分层模型最大的好处就是某一层变化了,只要其提供上层的接口未变,那么上层就无需做任何改动。
因此只需要更改本层的实现即可。
嵌入式平台因为软硬件多变性,为了最大限度的利用先前的成果,软件设计一定要遵循这种层次化模型,这样才能保证其可移植性12、 TCP和UDP的区别?各种网络互连设备都用在哪一层?如何建立链接?如何进行拥塞控制?【考点】协议设计可靠性及缓冲区设计管理。
TCP和UDP的最大区别在于可靠性,TCP通过三次握手协议及超时机制安全可靠的建立或者释放连接。
协议设计最大的问题就是如何保证效率合可靠性,TCP的设计为我们提供了一个参考。
而滑动窗口机制可以有效的进行拥塞控制,但窗口大小的设计则关系到内存利用率及缓冲效率可靠性等问题。
在嵌入式的驱动程序设计中,经常会开辟缓冲区来进行流量控制及防止数据覆盖,缓冲区的大小设计则需要更加具体的应用情况设计才能保证可靠性合灵活性(42)A. AND B. OR C. NOT D. XOR<解析>:考查汇编语言的基础知识,简单到极点了,这个分数拿不到,基本过不了。
AND(与):有0为0。
OR(或):有1为1。
NOT(非):取反。
XOR(异或):相同为0,不同为1。
要对寄存器的某几位清零,应用AND。
例如对11011010的中间四位清零:11011010 AND 11000011 得11000010。
个人认为:用XOR指令,一条指令是做不到的,实际中不可取。
参考答案:A。
●指令周期是指__(43)__。
(43) A. CPU 从主存取出一条指令的时间B. CPU 执行一条指令的时间C. CPU 从主存取出一条指令加上执行该条指令的时间D. 时钟周期的时间<解析>:考嵌入式最最基本的概念了,记住就行,这个分数必拿。
指令周期:CPU从内存取出一条指令并执行这条指令的时间总和。
包括取指令,分析指令,执行指令整个过程。
<补充>:时钟周期、机器周期、指令周期的概念辨析。
时钟周期:时序中的最小单位,就是1/fosc。
例如:晶振为12MHz,那么时钟周期为1/12us。
机器周期:完成某一规定操作所需的时间,通常由若干时钟周期构成。
例如:单片机是12周期的话,那么在12MHz晶振的情况下,其机器周期为1us。
指令周期:完成一条指令的所有时间。
例如RET是一个2周期指令,在上述的条件下,它的指令周期为2us。
参考答案:C。
●在汇编过程中,不产生机器码,只用来指示汇编程序如何汇编的指令是__(44)__。
(44)A. 宏指令 B. 伪指令 C. 汇编指令 D. 机器指令<解析>:考查汇编语言的基础知识。
不想多说了,太简单了,自己看看概念吧。
或者这样记住:伪指令就是假的指令,假得指令是给人看的,不是给机器看的,所以机器不能产生代码。
注意一下宏指令的用法,说不好下次就考了。
参考答案:B。
●在8086微处理器中,若(SS) = 2000H,(SP) = 0100H,(AX) = 2107H,执行指令PUSH AX 后存放数据21H 的物理地址是__(45)__。
(45)A. 20102H B. 20101H C. 200FEH D. 200FFH<解析>:这道题目不容易,需要对X86汇编语言有深入的理解,拿不到分就算了。
41题是会做对这道题目的基础。
由41题可知,8086的堆栈数据操作是,SP先减,再压入数据,以字为单位对堆栈操作。
因此压入数据时的起始SP应为0100H-2=00FEH。
而8086中数据采用小端模式存取,即一个字数据中低字节存放低位地址。
(X86越向上的地址越小)8086逻辑地址到物理地址的形成机制为:物理地址=段地址*16+偏移地址(或物理地址=段地址左移4位+偏移地址)。
压栈后,内容存储的物理地址为2000*16+00FEH=200FE,21H是AX 中的高位,其存储位置为200FFH。
参考答案:D。
●在串行通信中,根据数据传输方向不同,可以分成三种方式,不包括__(46)__方式。
(46)A. 单工 B. 双工 C. 半单工 D. 半双工<解析>:考查接口通信的基础知识。
没有必要多说,是我们搞嵌入式必须知道的基本常识。
什么是单工、双工、半双工得搞搞清楚。
参考答案:C。
●寄存器间接寻址方式中,操作数处在__(47)__。
(47)A. 通用寄存器 B. 主存单元 C. 程序计数器 D. 堆栈<解析>:考查寻址方式的基础概念,需要有一点的理解,但是其选项会让很多人答对。