【嵌入式系统复习1-2章】

嵌入式系统复习1-2章

1.嵌入式系统概念?

以应用为中心、以计算机技术为基础,软硬件可裁剪,应用系统对功能、可靠性、成本、体积、功耗和应用环境有特殊要求的专用计算机系统。本、体积、功耗

2、嵌入式系统组成?

嵌入式系统由硬件系统和软件系统组成。

3、常用的嵌入式操作系统有哪些?

常用的嵌入式操作系统有:Vxworks、μCLinux,μC/OS-Ⅱ、Linux等。

4、嵌入式操作系统有哪些特点?

嵌入式操作系统特点:实时性、可靠性、可移植性、可裁减性、专用性。

5、ARM有什么含义?

ARM首先是一个公司的名字。其次,ARM还是一种技术或一些列产品的总成。

6、ARM有哪几种基本工作模式?

ARM主要有7个基本工作模式

User :  非特权模式,大部分任务执行在这种模式

FIQ :   当一个高优先级(fast) 中断产生时将会进入这种模式

IRQ :   当一个低优先级(normal) 中断产生时将会进入这种模式

Supervisor :当复位或软中断指令执行时将会进入这种模式

Abort : 当存取异常时将会进入这种模式

Undef : 当执行未定义指令时会进入这种模式

System : 使用和User模式相同寄存器集的特权模式

7、ARM处理器包含了多少个寄存器?

ARM 处理器内部包含了1 个用作PC( Program Counter),1个用作CPSR(Current Program Status Register),5个用作SPSR(Saved Program Status Registers),30 个通用寄存器,共37个。这37个分别是:  R0~R7为未分组的寄存器,R8~R14为分组寄存器,R13常作为堆栈指针(SP),R14为链接寄存器(LR),R15为PC寄存器。

8、ARM体系结构可以用两种方法存储字数据,称为大端格式和小端格式。什么是大端格式?什么是小端格式?

大端格式:在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中

小端格式:与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。

9、要将0x12345678存储在1000地址处,试分别画出其大端格式和小端格式的存储示意图?

10、ARM中哪种工作模式使用的寄存器最少?

user模式与system模式

11、Thumb指令与ARM指令的区别?

ARM指令是32位的,而Thumb指令是16位的。

Thumb是ARM体系结构的扩展。它有从标准32位ARM指令集抽出来的36条指令格式,可以重新编成16位的操作码。这能带来很高的代码密度。

12、RISC与CISC分别表示什么含义?有什么区别?

RISC是精简指令集的简称,CISC是复杂指令集的简称。ARM采用的是RISC技术。

RISC与CISC主要差别:A、寄存器方面。RISC指令集:拥有更多的通用寄存器,每个可以存放数据和地址,寄存器为所有的数据操作提供快速的存储访问。CISC指令集:多用于特定目的的专用寄存器。B、LOAD –STORE结构方面。RISC结构:Cpu 仅处理寄存器中的数据,采用独立的、专用的LOAD –STORE 指令来完成数据在寄存器和外存之间的传送。(访存费时,处理和存储分开,可以反复的使用保存在寄存器中的数据,而避免多次访问外存)。CISC结构:能直接处理存储器中的数据。

13、熟悉常用逻辑指令

 and r0,r1,#0xFF   // r0 = r1&0xFF

 orr r3,r0,#0x0F   // r3 = r0|0x0F     

 bic r0,r0,#0x03   // 清除r0中的0号位和1号位

 tst r0,#0x20      //测试第6位是否为0 ,为0则Z标志置1

cmp r1,r0         //将R1与R0相减做比较,并根据结果设置CPSR的标志位

14、b指令与bl指令有何区别?

BBL指令引起处理器转移到“子程序名”处开始执行。
两者的不同之处在于:
 (1)BL
指令在转移到子程序执行之前,将其下一条指令的地址拷贝到R14LR,链接寄存器)。由于BL指令保存了下条指令的地址,因此使用指令“MOV PC ,LR”即可实现子程序的返回。
 (2)B指令则无法实现子程序的返回,只能实现单纯的跳转。

15、str r0,[r1,#12]与str r0,[r1],#12以及str r0,[r1,#12]!指令有何区别?(r1=0x200)

PPT

16 ldmfd sp!,{r0-r12,pc}^ 指令中的!和^各有何作用?

!表示寄存器会自动更新地址。而^表示会恢复spsrcpsr.

17、用汇编程序实现求最大公约数(如9,15)

.text

.global _start

_start:

mov  r0,#15,

mov  r1,#9

loop:

cmp   r0,r1

subgt  r0,r0,r1

sublt   r0,r0,r1

bne   loop

stop:  

b stop

.end

18、用打擂台算法找出从10个数中的最大值。

.section .text

.global  _start

_start:

       mov    r0,#9

       ldr     r1,=buf

       ldr    r2,[r1],#1

loop:

        ldrb     r3,[r1],#1

       cmp     r2,r3

       movlt    r2,r3

       sub      r0,#1

       cmp     r0,#0

       bne     loop

stop:

       b    stop   

.section .data

buf:

 .byte 7,6,9,5,3,1,8,4,2,10

 .end

19、用循环实现一个字符串的拷贝?例如将"china"从srcbuf,拷贝到dstbuf处。

.text

       ldr  r5,=srcBuf

       ldr  r6,=destBuf

loop:

       ldrb r4,[r5]

       cmp  r4,#0

       beq  main_end

       ldrb  r0,[r5],#1

       strb  r0,[r6],#1 

       b   loop

main_end:

       b    main_end 

.data 

srcbuf: 

.string "china\0"

dstbuf:

 .space 8

.end

20、用汇编指令实现将字符串逆序排列?

.text

    ldr  r5,=srcBuf+4

    ldr  r6,=destBuf

    mov r4=4

loop:

    sub  r4,#-1

    cmp  r4,#0

    beq  main_end

    ldrb  r0,[r5],-1

    strb  r0,[r6],#1 

           b   loop

main_end:

           b    main_end 

.data 

srcbuf: 

.string "china\0"

dstbuf:

 .space 8

  .end

21、什么是中断?

所谓中断,是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中断(中止)当前程序的执行,而转去为事件服务,待服务完毕,再返回到暂停处(断点)继续执行原来的程序的过程叫做中断。

22、中断的发生和响应过程是怎样的?

按照事件发生的顺序,中断过程包括 

①中断源发出中断请求;

②判断当前处理机是否允许中断和该中断源是否被屏蔽;

③优先权排队;

CPU执行完当前指令或当前指令无法执行完,则立即停止当前程序,保护断点地址和当前状态,通过中断向量表,跳转到相应的中断服务程序;

⑤执行中断服务程序;

⑥恢复被保护的状态,执行“中断返回”指令回到被中断的程序或转入其他程序。

上述过程中前四项操作是由硬件完成的,后两项是由软件完成的。

23、中断和子函数的区别

中断的发生是随机的,不可预测的。而子函数的调用是在程序中预先安排好的。是确定的。

24、什么是bootloader,其主要功能是什么?

Bootloader是硬件启动的引导程序,是运行操作系统的前提; 在操作系统内核或用户应用程序运行之前运行的一小段代码。对软硬件进行相应的初始化和设定,为最终运行操作系统准备好环境;在嵌入式系统中,整个系统的启动加载任务通常由Bootloader来完成。

25、嵌入式系统中的bootloader有何特点?

Bootloader不属于操作系统,一般采用汇编语言和C语言开发。需要针对特定的硬件平台编写。Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。

26、Bootloader的操作模式有哪几种?

大多数Bootloader都包含两种不同的操作模式 

自启动模式:在这种模式下,Bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。 交互模式:在这种模式下,目标机上的Bootloader将通过串口或网络等通信手段从开发主机(Host)上下载内核映像和根文件系统映像等到RAM中。可以被 Bootloader写到目标机上的固态存储媒质中,或者直接进行系统的引导。也可以通过串口接收用户的命令。

27、简述在ARM中uboot的启动流程

设置为svc模式-关闭MMU-基本硬件设备初始化(关中断、看门狗,初始化始终,串口,Flash,内存)-自搬移到内存-设置好堆栈-跳转到c程序—大部分硬件初始化——搬移内核到内存运行

28、若PC机的IP地址为192.168.160.252,虚拟机的IP地址为192.168.160.212,试验箱的IP地址为192.168.170.212。在实验室局域网条件下三者能否实现网络连接?若不能,应如何修改试验箱的IP地址?

不能实现网络连接。

setenv serverip 192.168.160.252

setenv ipaddr  192.168.160.172

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值