1. 嵌入式系统的定义是什么?

IEEE给出的嵌入式系统定义是:控制、监视或者辅助装置、机器和设备运行的装置。

目前国内的被普遍认同的定义是:以应用为中心,以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

2. 嵌入式系统由哪几部分组成?

嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统(可选)以及用户的应用软件系统等四个部分组成。

3. 上位机和下位机是什么?

完成交叉编译的通用计算机称为宿主机或上位机,运行可执行程序的嵌入式开发板或试验箱称为目标机或下位机。

4. 什么是交叉编译?

在一种平台上编译出能在另一种平台(体系结构不同)上运行的程序。

5. 嵌入式系统的发展经历了哪几个阶段?

无操作系统阶段、简单操作系统阶段、实时操作系统阶段、面向Internet阶段。

6. Linux在嵌入式领域的优势有哪些?

  • Linux是开放源代码的。
  • Linux属于微内核操作系统,内核小、效率高、运行稳定、可裁剪性好,并且更新速度很快。
  • Linux适用于多种CPU和多种硬件平台,是一个跨平台的系统。
  • Linux具有与生俱来的强大网络功能,支持各种网络连接方式,很适合作为面向Internet的新一代嵌入式产品的操作系统。
  • Linux具有丰富的软件开发工具,能够满足嵌入式系统中软件部分的开发要求。

7. Linux中的文件类型有哪些?

Linux中有4种基本文件类型,分别为普通文件、目录文件、符号链接文件和设备文件,此外,还有一些其他类型的文件,如命名管道文件、socket文件等。

8. 管道的定义是什么?

管道是进程间通信的一种手段,分为无名管道和命名管道。无名管道仅存在于内存中,不产生额外文件,而命名管道会产生相应的管道文件。无名管道可以在命令行中实现而命名管道必须通过编程实现。

9. 简述TFTP、Telnet、NFS服务。

  • TFTP(简单文件传输协议)是TCP/IP协议簇中的一个用来在客户机与服务器之间进行简单文件传输的协议。
  • Telnet是一个基于字符界面的远程登录协议。通过Telnet,用户可以远程登录到指定的主机中,以本地主机为仿真终端对远程主机进行操作。
  • NFS(网络文件系统)是一种将远程主机上的指定目录经网络挂载到本地系统的一种机制,通过网络文件系统,用户可以在本地系统上像操作本地目录一样来对远程主机的目录进行操作。

10. 简述GCC、GDB、make工具。

  • GCC是GNU开源社区的一个编译器项目,最初只能编译C语言程序,如今GCC已能够完成对多种编程语言编写的程序的编译,包括C、C++、Ada、Object C、Java、Fortran等。
  • GDB是GNU发布的一个功能强大的程序调试工具。源程序在用GCC编译时如果加上参数“-g”,生成的可执行文件就可以使用GDB进行调试执行。
  • make是GNU推出的用来管理多个程序的工具,它依靠makefile文件中规则的描述,获取可执行文件和各程序模块间的关系,实现对属于同一个项目的多个文件进行管理。

11. ARM处理器有哪几种处理器模式?

  • 用户模式usr:正常用户程序执行的模式。
  • 快速中断模式fiq:支持高速数据传输和通道处理。
  • 外部中断模式irq:通常的中断处理。
  • 管理模式svc:操作系统使用的一种保护模式。
  • 中止模式abt:实现虚拟存储器或存储器保护。
  • 未定义模式und:用于支持通过软件仿真的硬件协处理器。
  • 系统模式sys:用于运行特权级的操作系统任务。

12. 简述CPSR和SPSR。

  • 寄存器CPSR称为当前程序状态寄存器,在所有处理器模式下都只对应1个物理寄存器,除用户模式只能对它进行读操作外,其他处理器模式都可以对它进行完全的读写操作。它包含了条件标志位、中断禁止位、当前处理器模式标志以及其他的一些控制和状态位。其功能为:设置处理器运行模式和工作状态;控制允许或者禁止FIQ和IRQ;保存ALU当前操作信息,设置条件标志位,控制条件执行。
  • 寄存器SPSR称为备份程序状态寄存器,共有5个,每个异常模式下都有1个,标记为SPSR_fiq、SPSR_irq、SPSR_svc、SPSR_abt和SPSR_und,用于当特定的异常中断发生时保存CPSR的内容。用户和系统模式没有SPSR,在这两种模式下访问SPSR会产生不可预知的结果。

13. 简述ARM处理器的异常处理机制。

当异常发生时,ARM处理器按以下步骤自动响应:
(1)把将来的返回地址保存到对应模式下的R14(LR)寄存器中。
(2)把CPSR的值保存到对应模式下的SPSR中。
(3)设置CPSR中相应的位(处理器模式、ARM指令集状态、设置中断)。
(4)设置PC为对应的异常向量(即跳转地址)。

从异常中断处理程序返回时需要做两个基本操作:
(1)将相应SPSR中的值复制到CPSR中。
(2)将相应R14(LR)中的值复制到PC(R15)中。

14. 举例说明Linux中文件通配符的作用。

Linux的命令中可以使用文件名通配符*?[]

  • *代表匹配任意多个字符,例如t*代表以字母t开头的所有文件名,包括tt12345ttt.txt等;
  • ?代表匹配任意一个字符,例如t?代表以字母t开头的,文件名长度为2的所有文件名,包括ttt6tp等,但不包括ttttpppp等;
  • []代表匹配[]中的一个字符,例如t[123]t表示文件名t1tt2tt3t

15. ARM处理器异常类型有哪些?其优先级排列次序是什么?

异常类型 处理器模式 异常向量
复位(RESET) 管理模式svc 0x00000000
未定义指令(UDEF) 未定义模式und 0x00000004
软件中断(SWI) 管理模式svc 0x00000008
指令预取中止(PABT) 中止模式abt 0x0000000C
数据访问中止(DABT) 中止模式abt 0x00000010
保留 - 0x00000014
IRQ中断 外部中断模式irq 0x00000018
FIQ中断 快速中断模式fiq 0x0000001C

异常优先级从高到低依次为:RESET、DABT、FIQ、IRQ、PABT、SWI、UDEF。

16. ARM920T体系结构支持哪两种方法存储字数据?

大端模式和小端模式。大端模式高地址存的是数据的低位,低地址存的是数据的高位;小端模式高地址存的是数据的高位,低地址存的是数据的低位。

17. 简述B、BL、BX和BLX指令的含义。

  • B指令是最简单的跳转指令,一旦遇到一个B指令,ARM处理器将立即跳转到给定的目标地址,从那里继续执行;
  • BL指令在跳转之前,会在寄存器R14(LR)中保存PC(R15)的当前内容,因此,可以通过将R14的内容重新加载到PC中从而返回到跳转指令之后的那条指令处执行。该指令是实现子程序调用的一个基本但常用的手段。
  • BX指令跳转到指令中所指定的目标地址,目标地址处的指令既可以是ARM指令,也可以是Thumb指令,主要用于从ARM代码区跳转到Thumb代码区;
  • BLX指令从ARM指令集跳转到指令中所指定的目标地址,并将处理器的工作状态由ARM状态切换到Thumb状态,该指令同时将PC的当前内容保存到寄存器R14中。

18. ARM处理器共有几个寄存器?简要说明每种寄存器的作用。

ARM处理器共有37个寄存器,包括31个通用寄存器和6个状态寄存器,每个寄存器都是32位的,但状态寄存器只用了其中的部分位。

  • 寄存器R0~R7在所有处理器模式下都只对应1个物理寄存器,称为未备份寄存器。
  • 寄存器R8~R12称为备份寄存器,每个寄存器对应2个物理寄存器,分别用R8~R12R8_fiq~R12_fiq表示,在快速中断模式中使用R8_fiq~R12_fiq
  • 寄存器R13~R14也称备份寄存器,但每个寄存器对应6个物理寄存器,在用户模式和系统模式下共用一个物理寄存器,其他5种异常模式下分别使用另外5个物理寄存器。寄存器R13在ARM中常用作堆栈指针,指令中常用SP表示;寄存器R14在ARM中被称为连接寄存器(LR),在每一种处理器模式中,当通过BLBLX指令调用子程序时,各模式对应的物理R14被设置成该子程序的返回地址,当异常发生时,该异常模式对应的物理R14被设置成该异常模式将要返回的地址。
  • 寄存器R15不是备份寄存器,在所有处理器模式下都只对应1个物理寄存器。R15寄存器在ARM中被称为程序计数器(PC),用来指出当前CPU执行的指令地址。

19. 扩展操作权限中的SUID、SGID、粘附位分别表示什么?

  • SUID表示执行文件时,将执行该文件的用户UID作为文件的UID;
  • SGID表示执行文件时,将执行该文件的用户GID作为文件的GID;
  • 粘附位表示只有文件主和root用户才能删除带有该标识的文件,其他用户虽然有“w”权,但仍然不能删除带有该标识的文件。

20. 什么是输入/输出重定向?

输出重定向可以将命令或者程序运行中所产生的信息保存在文件中,输出重定向符为>,当输出重定向符写为>>时,表示将输出内容追加到指定文件的后面。

输入重定向可以让运行中的命令或者程序从指定的文本文件中读取数据,从而减少数据输入过程中的错误,输入重定向符为<

21. 某文件操作权限的数字形式为4765,请解释该文件的操作权限。

第一组二进制数为100,表示有SUID位,无SGID位,无粘附位;第二组二进制数为111,表示文件主对文件具有rwx权限;第三组二进制数为110,表示同组用户对文件有r权,有w权,无x权;第四组二进制数为101,表示其他用户对文件具有r权,无w权,有x权。

22. 嵌入式系统的开发流程分为哪几个阶段?

  • 需求分析:主要通过充分的市场调研和与用户的交流,制定出要开发的系统的性能指标、操作方式、外观等需求参数。
  • 系统定义与结构设计:根据需求分析寻找能构成系统的合适组件,形成多套方案。
  • 硬件子系统设计:主要完成电路原理图设计和PCB布线。
  • 软件子系统设计:通常包括嵌入式操作系统定制、设备驱动程序开发和应用程序开发等三项内容。
  • 系统集成与测试:在硬件子系统与软件子系统设计完成后,需要将软件子系统下载到硬件子系统的flash中,然后进行整体的系统测试。
  • 项目评估与总结:主要对整个系统开发过程中的成功经验和失败教训进行总结,为下一次的开发奠定基础。

23. Linux对文件操作的用户分类有哪些?

  • 文件的所有者,用单词user的第一个字母u表示。
  • 同组用户,即与文件的所有者具有相同组ID的用户,用单词group的第一个字母g表示。
  • 其他用户,即与文件的所有者不同组的用户,用单词other的第一个字母o表示。
  • 上述三类用户合起来称为所有用户,用单词all的第一个字母a表示。

24. 什么是多线程?Linux多线程应用程序设计的概念及优点是什么?

多线程是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。

在嵌入式系统中,往往需要并发处理多个任务,这就需要多线程应用程序设计。多线程程序设计方法可以优化程序结构,提高CPU的利用率,也可以提高系统的响应速度,它已成为嵌入式系统应用软件设计中必须掌握的重要技术。

25. ARM指令集的特点是什么?

  • 使用大量的寄存器,所有数据处理都在寄存器中完成;
  • 只用Load/Store指令访问内存单元;
  • 每条ARM指令都是32位固定长度。

26. Cortex系列处理器的适用场合是什么?

  • Cortex-A类型处理器主要适用于复杂的操作系统和大型应用场合,如高端手机、金融事务处理机等。
  • Cortex-R类型处理器主要适用于实时应用场合,如高档轿车组件、大型发电机控制器、机械手臂等。
  • Cortex-M类型处理器主要适用于传统的低成本、低功耗、极速中断反应以及高处理效率的自动控制场合,如医用器械、电子玩具、无线网络等。

27. ARM架构与x86架构的区别?

  • 指令集的不同:这是最根本的区别。ARM的处理器是精简指令集RISC,Intel(x86)的处理器是复杂指令集(CISC)。RISC是以CISC中最常用的指令(20%)为基础而设计的,故而RISC的效率更高。
  • 功耗的不同:ARM处理器是设计低功耗处理器,Intel则侧重于设计超高性能的台式机和服务器处理器,功耗高。而低功耗意味着更加好控温,供电时间更长,维护成本上也更低。
  • 性能的不同:x86架构的运行速度远快于ARM架构。
  • 操作系统的兼容性不同:目前ARM架构几乎都采用Linux的操作系统,而x86则是几乎可以在所有的硬件平台直接使用。

28. TFTP服务有什么特点?

使用TFTP所构建的TFTP服务具有功能简单、系统开销小的特点,仅提供文件上传与下载功能,经常用于在局域网中传输小文件、启动无盘工作站、启动网络设备等。

29. Telnet服务有什么特点?

使用Telnet进行远程登陆时,数据以明码的方式在网络上进行传递,用户的用户名和密码也是以明码方式在网络上进行传递的,因此,Telnet的安全性不高,主要应用在局域网中。在嵌入式系统开发过程中,嵌入式设备经常使用Telnet与上位机连接。

30. ARM处理器的快速中断FIQ为什么处理速度比外部中断IRQ快?

  • FIQ的处理优先级比IRQ更高,甚至可以打断正在执行的IRQ;
  • FIQ模式有自己独有的寄存器,而IRQ需要和其他模式共用寄存器,因此FIQ在中断处理的保护/恢复现场会更快;
  • 在异常向量表中,FIQ处在最末尾。在异常向量表中IRQ只能保存中断处理程序的首地址,在发生IRQ时需要一次跳转;而FIQ处在最末尾,所以可以直接将FIQ模式下的中断处理程序紧接着存放,这样在处理FIQ时就少一次跳转。

31. 在嵌入式系统应用程序设计中,使用C语言和汇编语言各有什么特点和优势?

  • 汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。
  • C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编语言高。

32. Linux嵌入式系统课程与计算机其它专业课程之间的关联是什么?通过课程的学习可以解决哪些问题?可以实现哪些应用?

  • 嵌入式系统是一门应用能力极强的课程,注重实践与实操。该课程回顾了C语言、汇编语言、操作系统等一系列相关的专业知识,Linux嵌入式系统知识面广、涉及内容多,从硬件到软件的知识均会涉及。
  • 可以解决的问题:嵌入式系统可以应用于消费电子领域、工业控制领域、汽车电子领域、航空航天领域、医疗医学领域、机器人领域、物流管理领域等诸多领域,已经渗透到我们日常生活中的每一个角落,并且几乎在我们的生产生活中所用到的工具设备上随处可见。
  • 可以实现的应用:机电控制系统、工业机器人、过程控制系统、智能仪器与智能仪表、智能家居控制系统、航天导航系统、电子干扰系统、GPS定位/导航模块、汽车安全系统等。

33. 与嵌入式系统开发相关的Linux服务命令有哪些?

service xinetd restart  # 重新启动xinetd服务组合,TFTP和Telnet服务将随着xinetd的重新启动而启动
netstat -au|grep tftp  # 查看TFTP服务是否成功启动
service iptables restart  # 激活防火墙设置
service iptables stop  # 关闭防火墙
service iptables start  # 启用防火墙
service iptables status  # 查看防火墙状态
service portmap start  # 启动端口映射服务
service nfs start  # 启动NFS服务

34. 某工程包含两个C语言源文件a.c和a1.c,写出该工程的makefile文件。

# This is a example
CC = gcc  # 设置变量CC的值为gcc,该变量代表编译器
FLAGS += -Wall  # 给变量FLAGS的内容后追加字符串“-Wall”,变量FLAGS的值将作为gcc的参数
EXEC = aa  # 设置变量EXEC的值为aa,该变量代表要生成的可执行文件名。all: ${EXEC}  # 规则语句块,目标名为all,依赖文件为变量EXEC的值,该规则语句块命令行为空${EXEC}: a.o a1.o  # 规则语句块,目标名为变量EXEC的值,依赖文件为a.o和a1.o${CC} ${FLAGS} -o $@ a.o a1.o  # 规则语句块的命令行,使用依赖文件生成目标,$@代表该规则语句块的目标a.o: a.c  # 规则语句块,目标名为a.o,依赖文件为a.c${CC} ${FLAGS} -c $^  # 规则语句块的命令行,使用依赖文件a.c生成目标a.o,$^代表生成目标的依赖文件a1.o: a1.c  # 规则语句块,目标名为a1.o,依赖文件为a1.c${CC} ${FLAGS} -c a1.c  # 规则语句块的命令行,使用依赖文件a1.c生成目标a1.oclean:  # 伪目标规则语句块,无依赖文件rm -f ${EXEC} a.o a1.o  # 规则语句块的命令行,删除所有目标文件test:  # 伪目标规则语句块,无依赖文件./${EXEC}  # 规则语句块的命令行,运行变量EXEC所代表的最终目标文件

Linux嵌入式系统简答题复习相关推荐

  1. linux面试题中的简答题,[计算机]linux面试题简答题部分.doc

    [计算机]linux面试题简答题部分 linux面试题(简答题部分)2 简述进程的启动.终止的方式以及如何查看进程?答:启动进程的方式分为手动启动和自动启动两种方式,其中手动启动的方法用service ...

  2. 简述计算机图形的图形应用主要有哪些,5计算机图形学考试简答题复习.doc

    5计算机图形学考试简答题复习 计算机图形学考试简答题复习 1.简述计算机动画的概念,它经历了哪几个阶段的发展?(2分) 计算机动画是指采用图形与图像的处理技术,借助于编程或动画制作软件生成一系列的景物 ...

  3. 计算机系统与网络安全-简答题复习

    计算机系统与网络安全-简答题复习 参考文献 [1] 周世杰,陈伟,罗绪成,<计算机系统与网络安全技术>,高等教育出版社 第一章 信息安全概述 (1.1信息及信息安全+1.2 信息安全体系) ...

  4. Linux嵌入式系统开发之Led开发——应用篇(一)

    与Linux嵌入式系统开发之Led开发--驱动篇(一),对于的应用篇 看看咱们的开发板,有四个led灯,对吧,这次就是向办法用程序来点亮它,请看下边的代码: #include <stdlib.h ...

  5. LINUX嵌入式系统开发平台选择

    1 嵌入式系统与Linux 按照电气工程师协会的一个定义:嵌入式系统是用来控制或监视机器.装置或工厂等的大规模系统的设备.具体说来,它是电脑软件和硬件的综合体:是以应用为中心,以计算机技术为基础,软硬 ...

  6. 基于Arm板linux嵌入式系统RS485串口读写通讯

    最近在做基于Arm板linux嵌入式系统的RS485串口读写通讯首先参考 http://bbs.chinaunix.net/thread-3650543-1-1.html上的文章,该文章写道,读的时候 ...

  7. 考研复试408-操作系统简答题整理

    考研复试408-操作系统简答题整理 1. 什么是操作系统?有哪些基本功能? 操作系统定义: 操作系统是计算机系统中的一个系统软件,它是这样一些程序模块的集合-他们管理和控制计算机系统中 的硬件及软件资 ...

  8. 第一天 软考中级--嵌入式系统设计师考试复习教程开始了

    第一天 嵌入式系统设计师考试复习教程 第二天 软考中级--嵌入式系统设计师考试考试大纲解析 目录

  9. 有关 车牌识别(二、Linux嵌入式系统代码)

    二.Linux嵌入式系统代码 参考  https://blog.csdn.net/qq_36449541/article/details/80206477 原先的开发者是在友善之臂的平台上(好像cpu ...

最新文章

  1. 【Android 异步操作】Handler 机制 ( Android 提供的 Handler 源码解析 | Handler 构造与消息分发 | MessageQueue 消息队列相关方法 )
  2. python生成姓名,python自动生成姓名
  3. 如何利用Gitlab-CI持续部署到远程机器?
  4. 阅读react-redux源码(三) - mapStateToPropsFactories、mapDispatchToPropsFactories和mergePropsFactories
  5. 台达b3伺服参数设置方法_2020东莞清溪台达自动化配件回收厂家直购
  6. Golang Clearing slice
  7. 顺序图组合片段类型及属性
  8. webApi2 上传大文件代码
  9. CheckBox jsp+javaScript多项选择checkbox取值实现
  10. 前端模板技术的全面总结
  11. python中的选择结构语句是语句_选择结构-if语句和if...else语句
  12. nagios监控服务短信报警开发及部署细节
  13. mysql workbench免安装_mysql 压缩包免安装版 安转步骤
  14. 信噪比db换算_DB和dBm有哪些区别 DB和dBm区别介绍【图文】
  15. mindmanager2018官方下载地址
  16. 全国大学生数学建模竞赛(赛题选择)
  17. Java开发基础面试知识点
  18. 网页链接只能在微信端打开
  19. IDEA使用Spark 进行对所有数据进行统计
  20. -1岁的产品经理日记——part2(笔经,群面篇)

热门文章

  1. vc不支援此种界接口_护肤圈人人在夸的“早C晚A”,做完功课后我发现:不一定适合你!...
  2. 【leetcode题解——动态规划之完全背包】518.零钱兑换II(python版本详解+表格+dp五部曲)
  3. QT入门基础认知(三个常用类、三种对话框类型、信号和槽)
  4. 实战技法 - 短线操盘 (6)
  5. 时隔二十年,C++又杀回来了!
  6. 信创操作系统--统信UOS桌面版(文档处理:输入法、语音输入法、WPS、文本编辑器)
  7. Gradle 配置代理
  8. idea中surround with快捷键
  9. AlertDialog对话框的使用及示例
  10. jquery实现audio的播放控制