嵌入式系统习题库及答案

嵌入式系统习题库及答案

## 1.选择题

1. 以下哪个不是嵌入式系统的设计的三个阶段之一:(A)

A 分析

B 设计

C 实现

D 测试

2. 以下哪个不是RISC架构的ARM微处理器的一般特点:(C)

A 体积小、低功耗

B 大量使用寄存器

C采用可变长度的指令格式,灵活高效

D 寻址方式灵活简

3. 通常所讲的交叉编译就是在X86架构的宿主机上生成适用于ARM架构的( A )格式的可执行代码。

A elf

B exe

C pe

D sh

4. 下面不属于Boot Loader 阶段1所完成的步骤的是:( C )

A . 硬件设备初始化。 B . 拷贝Boot Loader的阶段2到RAM空间中。 C . 将kernel映像和根文件系统映像从Flash读到RAM空间中。 D . 设置堆栈。

  1. 以下哪个不是ARM的7种运行状态之一:( B)

    A快中断状态

    B挂起状态

    C中断状态

    D无定义状态

  2. 用以下的哪个命令可以把server的/tmp mount 到 client的/mnt/tmp 并且是( A)

    A .mount -o ro server:/tmp /mnt/tmp

    B. mount -o ro /mnt/tmp server:/tmp

    C .mount -o ro client:/mnt/tmp server:/tmp

    D.mount -o ro server:/tmp client:/mnt/tmp

    7. 以下哪个GUI是由中国人主持的一个自由软件工程:

    (A ) A MinuGUI B OpenGUI C MicroWindows D Qt/Embedded

    8. 在下面的叙述中,( D )不是嵌入式图形用户接口(GUI)的主要特点。

    A运行时占用的系统资源少 B. 模块化结构,便于移植和定制 C. 可靠性高 D. 美观华丽,图形算法复杂

    9.以下叙述中,不符合 RISC 指令系统特点的是( B )。

    A. 指令长度固定,指令种类少

    B. 寻址方式种类丰富,指令功能尽量增强

    C. 设置大量通用寄存器,访问存储器指令简单

    D. 选取使用频率较高的一些简单指令

    10. 通常所说的 32 位微处理器是指( C )。

    1. A. 地址总线的宽度为 32 位 B. 处理的数据长度只能为 32 位 C. CPU 字长为 32 位 D. 通用寄存器数目为 32 个

    11 在嵌入式软件交叉调试过程中,宿主机与目标机之间的连接与通信方式有(ABCD)种。

    A.串口 B .并口 C. 网络 D .JTAG E . BDM

    12.ADD R0,R1,[R2]属于(B)。

    A .立即寻址

    B。寄存器间接寻址

    C。寄存器寻址

    D。 基址变址寻址

    13、ADD R0,R0,#1属于(A)

    A .立即寻址

    B。寄存器间接寻址

    C。寄存器寻址

    D。 基址变址寻址

    14.数据字越长则(D)

    A时钟频率越快

    B 运算速度越快

    C对存储器寻址能力越差

    D精度越高

    15.典型的计算机系统结构是(A)

    A 冯诺依曼体系结构

    B 哈佛结构

    C 单总线结构

    D双总线结构

    16.将传统的计算机系统芯片化,是嵌入式系统诞生后的(A)发展模式

    A ∑发展模式

    B 创新模式

    C 电子应用模式

    D计算机应用模式

    17.下列不是RISC指令系统特点的是(C)

    A大量使用寄存器 B 采用固定长度指令格式 C 使用多周期指令 D 寻址方式多

    18.与通用操作系统相比嵌入式操作系统还必须具有的特点是(AB )

    A强稳定性,弱交互性 B 较强实时性 C 可伸缩性 D 功耗管理与节能

    19.下列那种设备不属于嵌入式系统产品(C)。

    A、PDA B ATM取款机 C 个人计算机 D 机顶盒

    20.下列是开源的嵌入式操作系统的是(A)

    A.嵌入式linux B uc/os D Palm OS E WinCE

    21.下列是虚拟文件系统的是(B)

    A proc B vfs C ext D fat32

    22.英国电机工程师学会的定义:“嵌入式系统为控制、监视或辅助设备、机器或甚至工厂操作的装置,具有(A)

    A通常执行特定功能

    B以微电脑和外围构成核心

    C严格的时序和稳定性要求

    D全自动操作循环

    23.下列任务不是在嵌入式产品设计初期,即需求分析阶段完成的任务是(D)

    A 性能 B 成本 C 功耗 D 操作系统和硬件选型

    24.下列不属于ARM处理器异常工作模式的是( D )

    A.快速中断模式

    B. 未定义模式

    C.数据访问终止模式

    D. 用户模式

    25.嵌入式软件开发与通用软件开发增加了( C )环节

    A. 代码编写 B. 代码调试 C. 代码固化 D. 软件测试

    26.嵌入式系统调试方式中不占用系统资源的调试方式是(C)

    A模拟器方式 B 监控器方式) C ICE在线仿真器 D IDE在线调试器方式

    27.ARM汇编程序中实现程序跳转的方式有(A)

    A 使用跳转指令 B 使用goto语句 C 向pc寄存器赋值 D 使用jump指令

    28.ADD R0,R1,[R2]中的第二操作数属于( B )方式。

    A .立即寻址 B。寄存器间接寻址 C.寄存器寻址 D.基址变址寻址

    29.烧写到FLASH里的是( B)格式的文件。

    A. .asm B. .bin C. .obj D…cpp

    29.汇编程序中的伪指令是在( C )阶段起作用。

    A. 编辑

    B. 链接

    C.编译

    D. 执行

    30、目前嵌入式处理器的种类大约有( C )

    A. 500多种 B.800多种 C. 1000多种 D.2000多种

    31.LDM和STM指令最多可以操作( C)寄存器。

    A. 12个 B .2个 C. 16个 D. 32个

    二、填空题

    1.ARM内核有(T)(D)(M)

    (I)四个功能模块。

    2.通用寄存器R0~R15可分为以下3块:(未分组寄存器R0-R7)(分组寄存器R8-R14)(程序计数器R15)

    3.ARM可用两种方法存储字数据:(大端模式)(小端模式)

    4.ARM体系结构支持的最大寻址空间为(4G)。

    5.ARM是(Advanced RISC Machines)的简称。

    6.ARM CPU 体系结构中支持的特有的两种指令集是:(ARM指令集、)(Thumb指令集)

    7.常用硬件调试工具有(实时在线仿真机)(逻辑分析仪)(ROM仿真机)(在线调试)

    8 . ARM处理器的5种异常模式是(快速终端模式)(外部中断模式)(管理模式)(数据访问终止模式)(未定义模式

    9.写出下列指令的含义 LDRR1, [R0, #0x08] : R0 加0x08加载 到R1里。即 :R1[R0+0x] SUB R1, R1, R2, LSR R3 :R1[R1-(R2右 移R3位) ] LDRR1,[R0,R2,LSL#2]! :R1[( R2左移2位)+R0] LDR R1, [R0],R2, LSL #1 : R1[R0] ,R0R0+ ( R2左移 1 位)

    10 . LDM和STM指令最多可以操作( 16 )个寄存器.

    11.嵌入式软件开发流程分为( 需求分析)( 软件设计 )(软件实现)( 软件测试)。

    12.BSP是( board support package)的缩写。

    13.ADS是(ARM developer suite )的缩写。。

    14.JTAG是(Joint Test Action Group)的简称。JTAG技术是一种调试技术,它是在芯片内部封装了专门的测试电路TAP(Test Access Port,测试访问口),通过专用的JTAG测试工具对内部节点进行测试调试技术。

    15.ARM汇编程序由(指令)( 为操作 )( 宏指令)三种指令组成。

    16.Bootloader依赖于(CPU体系结构),也依赖于具体板级设备配置。

    17.ARM中堆栈类型有(满递增)(满递减)(空递增)(空递减)四种。

    18.ARM处理器具有( ARM)(Thumb)两种操作状态

    19.嵌入式系统开发硬件选择主要考虑( 硬件平台 )( 操作系统 )( 编程语言 )( 开发工具)。

    20.ARM处理器内核型号中的字母TDMI的含义分别是(thumb支持16位指令集 )(支持片上debug )( 内嵌硬件乘法器multipiler )( 嵌入式ICE支持片上断点和调试点)。

    21.FLASH存储器的特点是(低功耗大容量 )(擦写速度快)(可整片进行烧写 )

    22.SDRAM存储器特点是(单位空间存储量大 )( 价格便宜)(运行速度快)

    23.FLASH存储技术中两种流行的存储技术是(norflash)(nandflash),其中成本较低,而接口比较复杂的flash存储技术是(nandflash)。

    24.ARM处理器有(快速中断模式)(管理模式)(外部中断模式)(数据访问终止模式)(用户模式)(系统模式)(未定义模式)种运行模式。其中特权模式是:(快速中断模式 )(管理模式)(外部中断模式)(数据访问终止模式)(系统模式)(未定义模式)异常模式是:(快速中断模式 )(管理模式)(外部中断模式)(数据访问终止模式)(未定义模式)

    25.ARM处理器模式转换方式主要有(arm模式)(thumb模式)两种。

    26.ARM处理器有(37)个寄存器,其中系统模式和用户模式下有

    (1)物理寄存器可用其他5中模式下都有(5)物理寄存器可用

    27.ARM处理其每种模式下都有一组寄存器可用,其中(用户模式)(系统模式)具有完全一样的寄存器组。

    28.ARM处理器分两大类(通用寄存器)(状态寄存器),其中(通用)寄存器又可以分为未分组寄存器,分组寄存器和程序寄存器。

29.ARM中共有(6)个状态寄存器,其中一个(用户模式和系统模式共用)和五个(对应其他5种模式),其中CPSR包括(条件标志位)(中断标志位)(当前处理模式标志位)(判别、状态位)内容。

30.ARM中状态寄存器的修改是通过(arm模式)(thumb模式)指令来完成的。

31.ARM寄存器中SP通常叫做(堆栈指针),对应物理寄存器(R13),LR叫做(连接寄存器),对应(R14)物理寄存器,PC叫(程序计数器),对应(R15)物理寄存器。

32.ARM体系结构支持的最大寻址空间为(4GB)。。

33.ARM汇编中的加载存储指令是用于在(连系存储单元)和(多寄存器)之间传送数据的,其中加载指令是用于将(一片连续存储器)中的数据传送到(多个寄存器)中,存储指令则相反。加载指令主要有(LDM),存储指令主要有(stm)。

34.汇编伪指令的功能是(完成汇编程序的各种准备工作),伪指令仅在(汇编)过程中起作用。

35.ARM C/C++和汇编混合编程中都必须遵循ATPCS规则,它主要规定了(子程序中调用过程中寄存器使用的规则)(数据栈的使用规则)(参数传递规则),三方面的内容,其中寄存器使用规则中限定了子程序间的参数传递主要通过( R0)(R1)(R2)(R3)寄存器来传递。

36.ATPCS规则中规定的堆栈类型为( FD类型 )。并且对堆栈的操作以(8个字节)为单位。

37.每一条ARM指令包含(4)位条件码,位于(指令的高字位),条件码共有(16)种,每种条件码可用(2)个字符来表示。

38.实现程序跳转的指令有(跳转指令)(直接向程序计数器取值)两种方法。

39.乘法指令和乘加指令按其运算结果可分为(32)(64)位两类。

40.数据交换指令在(一片连续存储器 )( 多个寄存器)之间交换数据。

42.ARM伪指令可以分为如下几类(符号定义伪指令)( 自定义伪指令 )(汇编控制伪指令)( 其他常用伪指令)等。

42.ARM汇编程序设计采用分段式设计,一个ARM源程序至少需要(1)个代码段。

43.一个典型的嵌入式系统软件一般分为(硬件层)、(驱动层)、(操作系统层)、(应用层)。四个层次。

44.Bootloader是(在操作系统内核运行之前运行的一段小程序),它的功能是(完成硬件的初始化和建立内存空间的映射关系 )。

45.Bootloadr启动目标板通常分两个阶段,第一阶段通常用(汇编)语言来实现。这一部分硬件相关,bootloader移植主要是修改这部分代码。第二阶段用通常用(C)语言来实现,具有(既有较好的可读性)(可移植性)。

46.大多数Bootloader都有两种操作模式(启动加载模式)(下载模式)。其中(下载)模式只对开发人员有意义。

47.本学期实验所使用的bootloader是(U-BOOT)(VIVI),其中(VIVI)具有可配置性。

48.驱动程序一般具有以下功能( 对设备初始化和释放)(对设备进行管理)(读取应用程序传送给设备文件的数据)(回送应用程序请求的数据)(检测和处理设备出现的错误)。

49.Flash主要有(nand flash )(nor flash)两种,可以片上执行的是(nor flash)。

50.C语言调用汇编程序,一般使用(extern)声明外部函数,即可调用汇编子程序。在汇编程序中用(import )申明本子程序,以使其他程序可以调用此子程序。

51.汇编程序调用C程序,在汇编中用(import )声明将要调用的C程序函数,即可在汇编程序中调用C程序。

52.C程序中嵌入式汇编指令以()
53.ARM寄存器LR是(连接 )寄存器( R14 ),CPSR和SPSR的功能(异常发生时SPSR用于保存CPSR的值 )。

54.Linux 系统中的SHELL的主要功能(命令解释 )(任务自动化)(系统管理 ),是通过编写脚本文件来实现系统管理和使任务自动化的。

55.linux系统中的(make)是linux软件开发管理工具,决定程序的编译链接规则,使工程编译链接自动化,它依赖于(makefile )工作。

56.嵌入式软件代码具有(代码量小)(C和汇编混合编程较灵活)的特点。

57.ADS是( ARM developer suite )的缩写,是由ARM公司开发的ARM嵌入式系统集成开发工具。

58.操作系统中传统的设备管理是通过(文件系统)方式实现的,其中(设备号)用来区分设备的种类。

## 二.简答
1.简述Linux在嵌入式系统市场上取得辉煌的成果的原因。
答: 广泛的硬件支持 内核高效稳定 开放源码,软件丰富 优秀的开发工具 完善的网络通信和文件管理机制

2.简述嵌入式系统平台移植所需要的步骤。
答:硬件平台的移植 引导/装载程序的移植(bootloader移植) 内核的修改配置编译与移植 相关驱动程序的移植 文件系统的移植 开发环境的移植(GUI库移植) 应用程序的移植

3.嵌入式根文件系统的设计目标应该包括哪些方面?
答: 使用简单方便 实时响应 可伸缩性和可配置性 资源有效性 安全可靠 热插拔、在线更新

4.简述Linux支持的硬件设备种类和Linux操作系统下的主要的设备文件种类。
答:主要硬件设备种类:字符设备、块设备和网络设备。主要设备文件种类:字符设备、块设备。

5.arm系列处理器arm7tdmi中的tdmi四个字母的含义。
答:T功能模块表示16位Thumb,可以在兼顾性能的同时减少代码尺寸。M功能模块表示8位乘法器。D功能模块表示Debug,该内核中放置了用于调试的结构,通常它为一个边界扫描链JTAG,可使CPU进入调试模式,从而可方便地进行断点设置、单步调试。
I功能模块表示EmbeddedICE Logic,用于实现断点观测及变量观测的逻辑电路部分,其中的TAP控制器可接入到边界扫描链。

6.嵌入式系统发展经历了那些阶段,有什么特点? 答:(1)萌芽阶段 编程语言:汇编语言 操作系统:无
硬件处理器:单芯片可编程控制器件8位MCU,DSP(单片机) (2)简单系统阶段 编程语言:汇编语言 操作系统:无 (3)RTOS阶段:
编程语言:汇编语言,c,c++ 操作系统:VxWorks,QNX,pSOS 硬件处理器:32位嵌入式处理器(ARM) (4)网络化阶段
编程语言:汇编语言,c,c++,Java 操作系统:VxWorks,QNX,pSOS,Linux 硬件处理器:高性能嵌入式处理器,SOC

7.嵌入式系统的设计方法和过程与传统的单片机开发有什么不同? 答:

学习方法不同
单片机学习一般从硬件入手,从硬件体系结构、汇编语言到硬件设计、软件设计;嵌入式系统学习可以从软件入手,从应用层编程到操作系统移植、硬件平台设计较好,按单片机设计的学习流程较难掌握硬件处理能力 有无操作系统
系统开发方法:嵌入式系统强调基于平台的设计、软硬件协同设计,单片机大多采用软硬件流水设计 嵌入式系统设计的核心是软件设计(占70%左右的工作量),单片机系统软硬件设计所占比例基本相同

8.简述哈佛体系结构和冯诺依曼体系结构的不同点。
答:哈佛体系结构的要点是:
(1)使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并行处理;
(2)具有一条独立的地址总线和一条独立的数据总线,利用公用地址总线访问两个存储模块(程序存储模块和数据存储模块),公用数据总线则被用来完成程序存储模块或数据存储模块与CPU之间的数据传输;
(3)两条总线由程序存储器和数据存储器分时共用。

冯诺依曼理论的要点是:数字计算机的数制采用二进制;计算机应该按照序顺序执行。其中:
(1).计算机由控制器、运算器、存储器、输入设备、输出设备五大部分组成。
(2).程序和数据以二进制代码形式不加区别地存放在存储器中,存放位置由地址确定。
(3).控制器根据存放在存储器中地指令序列(程序)进行工作,并由一个程序计数器控制指令地执行。控制器具有判断能力,能根据计算结果选择不同的工作流程。
人们把冯诺依曼的这个理论称为冯诺依曼体系结构。

10.简述NAND_FLASH和NOR_FLASH的异同点? 答:
Nor-flash 的读速度比Nand-Flash快 Nor-flash 的写速度比Nand-Flash慢 Nor-flash 的擦除速度比Nand-Flash慢 大多数写入操作需要先进行擦除操作 Nand-flash的擦除单元更小,相应的擦除电路更少 Norflash待用SRAM接口,有足够多的地址引脚,容易进行电路设计 Nand-flash使用复杂的I/O口串行传输数。
单位面积内Nand-flash存储容量更大 Nand-flash占据大容量存储市场(8-128M) 可靠性和耐用性
nandFlash更优秀(可擦写次数100万:10万) 易用性
Nor-flash不需要软件支持,片上执行 Nandflash需要驱动程序支持

10.简述S3C2410与ARM920T的关系.
答: S3C2410是韩国三星公司的一款基于ARM920T内核的32位RISC嵌入式微处理器,主要面向手持设备以及高性价比,低功耗的应用

11.嵌入式系统常用调试方法有几种,各有什么优缺点? 答:
1.模拟器方式
调试工具和待调试的嵌入式软件都在主机上运行,通过软件手段模拟执行为某种嵌入式处理器编写
的源程序。简单的模拟器可以通过指令解释方式逐条执行源程序,分配虚拟存储空间和外设,进行语法和逻辑上的调试。
2.在线仿真器方式
在线仿真器ICE是一种完全仿造调试目标CPU设计的仪器,目标系统对用户来说是完全透明的、可控的。由于仿真器自成体系,调试时可以连接目标板,也可以不接目标板。但是ICE价格昂贵,而且每种CPU都需要一种与之对应的ICE,使得开发成本非常高。
3.监控器方式
主机和目标板通过某种接口(通常是串口)连接,主机上提供调试界面,被调试程序下载到目标板上运行,通过与监控运行于目标机上的监控程序通信,获得调试信息。

12.什么是嵌入式操作系统?常见的嵌入式操作系统有哪些?(列举五个以上),嵌入式操作系统有什么特点? 答:
以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。”
嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统的重要组成部分。嵌入时操作系统具有通用操作系统的基本特点,能够有效管理复杂的系统资源,并且把硬件虚拟化。Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX 、Rtems 、QNX、INTEGRITY、OSE、C Executive
. 可裁剪;强实时性;统一的接口;操作方便、简单、提供友好的图形用户界面GUI;提供强大的网络功能;稳定性,弱交互性;固化代码;良好的移植性

13.什么是交叉开发环境?简述嵌入式linux系统交叉开发环境的构建过程?
答:简单的来说:在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。交叉开发是指在一台通用计算机上进行软件的编辑编译,然后下载到嵌入式设备中进行运行调试的开发方式。
1). 下载源文件、补丁和建立编译的目录
2). 建立内核头文件
3). 建立二进制工具(binutils)
4). 建立初始编译器(bootstrap gcc)
5). 建立c库(glibc)
6). 建立全套编译器(full gcc)

14.什么是bootloader?常用的bootloader有那些?bootloader两种工作模式有什么不同,分别应用在那种情况下?
答:Bootloader是在操作系统运行之前执行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。Grub和Lilo是PC计算机上的,U-boot,vivi,blob,ARMBoot是嵌入式系统上的。

两种工作模式是:启动加载模式和下载模式,这种区别仅对于开发人员才有意义。从最终用户的角度看,BootLoader的作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。
(1)启动加载(Boot loading)模式:这种模式也称为自主模式bootstrap。也即Boot Loader将存储在目标板Flash中的内核和文件系统的镜像装载到SDRAM中,整个过程无需用户的介入。这种模式是BootLoader的正常工作模式,因此在嵌入式产品发布的时候,BootLoader显然必须工作在这种模式下。
(2)下载Downloading模式:在这种模式下,目标机上的BootLoader将通过串口连接或网络连接等通信手段从宿主机Host下载文件,比如下载内核映像和根文件系统映像等。从主机下载的文件通常首先被BootLoader保存到目标机的RAM中,然后再被BootLoader写到目标机上的FLASH类固态存储设备中。BootLoader的这种模式通常在第一次安装内核与根文件系统时被使用;此外,以后

的系统更新(bootloader自身也可以这样更新)也会使用Boot Loader的这种工作模式。工作于这种模式下的BootLoader通常都会向它的终端用户提供一些简单的命令行接口。
Boot Loader 就是在操作系统内核运行之前运行的一段小程序。
常用的Bootloade有:U-Boot、VIVI、Blob、RedBoot、ARMboot Bootloader可工作在两种模式下,启动加载模式和下载模式 启动加载(Boot loading)模式应用在嵌入式产品发布的时侯。

下载(Downloading)模式应用在第一次安装内核与根文件系统时被使用;以后的系统更新也会使用Boot Loader 的这种工作模式。

15.简述bootloader在嵌入式系统平台上的移植过程? 答:
1).准备Bootloader软件
2).根据目标板硬件平台,修改配置Bootloader。

3).交叉编译,形成目标板子可执行的Bootloader二进制BIN文件。
4).将Bootloader烧写进目标板。

5).配置好宿主机上的minicom或者超级终端。

6).启动目标板,若bootloader编译没有错误,烧写正确,就可以在超级终端中看到目标板启动的信息。

16.Bootloader和BSP有什么不同?
答:BSP是开发板支持软件包,一般BSP包含有bootloader.BSP的作用是支持操作系统,使之能够更
好的运行于硬件平台;BootLoader就是在操作系统内核运行之前运行的一段小程序。

17.说明linux平台下用C语言软件开发方法?(说明需要用到那些工具)。
答:gcc + glibc + linux-header + make

18.什么是嵌入式软件?嵌入式软件有哪几种架构?嵌入式软件有什么特点?
答:嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件,它在产业中的关联关系体现为:芯片设计
制造→嵌入式系统软件→嵌入式电子设备开发、制造。冯诺依曼和哈佛体系 。

19.什么是SOC?
SoC(System on a Chip )中文名是系统级芯片.(片上系统); 三.名词解释 1.ARM
(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。
2.CISC和RISC
CISC复杂指令系统;RISC精简指令系统;
3. ATPCS
ARM-THUMB procedure call standard的简称;ATPCS就是基于ARM指令集和THUMB指令集过程调用的规范。
4.JTAG
Joint Test Action Group(联合测试行为组织)一种国际标准测试 协议(IEEE 1149.1 兼容) ,主要用于芯片内部测试。
5.ADS
ADS是ARM公司的集成开发环境软件(ARM developer suit)
6.Bootloader
BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用

操作系统内核准备好正确的环境 7.U-boot
Universal Boot Loader,是遵循GPL条款的开放源码工程 8.VIVI
Vivi 是韩国mizi 公司开发的bootloader, 适用于ARM9处理器。
Vivi有两种工作模式:启动加载模式和下载模式 9.make 工程管理器 10.makefile
Makefile文件 Makefile 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。

四.初始栈指针指向0x40000000单元,R1=1,R2=2,R3=3,R4=4,画出分别执行如下三条语句后栈结构图。

 STMFD SP!,{R1-R3}  STMFA SP!, {R1-R3}  STMEA SP!,{R1-R3 }  STMED SP!,{R1-R3}

img

五.说明下列汇编指令所使用得寻址方式,并且说明指令功能。
(1)LDR R0,[R1,#4]
答:基址变址寻址(前变):将寄存器R1的内容加上4形成操作数的有效地址,从而取得操作数
存入寄存器R0中。

(2) LDR R0,[R1,#4]!
答:基址变址寻址(自动变址):将寄存器R1的内容加上4形成操作数的有效地址,从而取得
操作数存入寄存器R0中,
(3)LDR R0,[R1] ,#4
答: 基址变址寻址(后变):以寄存器R1的内容作为操作数的有效地址,从而取得操作数存
入寄存器R0中,然后,R1的内容自增4个字节。

(4)LDMIA R0,{R1,R2,R3,R4}
答: 多寄存器寻址方式 :该指令的后缀IA表示在每次执行完加载/存储操作后,R0按字长度增
加,
(5)STMFD SP! ,{R1-R7,LR}
答:堆栈寻址:数据出栈,放入 R1~R7,LR 寄存器。满递减堆栈。

六.编程题

1、用C和ARM汇编混合编程,实现求两数和的功能。(C程序调用汇编程序,求和在汇编实现。)。
答:

#include 
extern int funcsum(int arg1,int arg2)int product。

int main() 
{   
   product=funcsum(1,5)printf("%d",product)return 0}
AREA Block,CODE,READONLY  。声明   
EXPORT funcsum 
funcsum    STMFD R13!,{R4,R14} 
MOV   R4,#0                  
mov r0,#a     
mov r1,#b             
add r4,r0,r1       
mov r0,r4 
LDMFD  R13!,{R4,R14} 
END  
  • 24
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客程序设计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值