arm 嵌入式系统复习大纲
嵌入式系统复习大纲
第一章 嵌入式系统概述
1.嵌入式系统的定义
答:1以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
2.嵌入式系统的组成,能画出嵌入式系统的组成框架。
答:嵌入式系统由软件系统和硬件系统两部分组成。
3. 单片机是不是嵌入式系统?它与ARM嵌入式系统有何异同?
答:单片机是嵌入式系统。
单片机一般是4位、8位或16位的数据总线,一般内置存储器,不运行操作系统,侧重于低成本,主要应用与工业控制等领域;而ARM嵌入式系统是32位的数据总线,运算速度快,外接大容量存储器,能运行操作系统以适合多种应用。
4.嵌入式系统与通用计算机之间的区别。
答:通用计算机系统采用标准化、模块化的设计,其技术要求是高速、海量的信息处理,技术发展方向是处理速度、总线宽度、存储容量的无限提升。而嵌入式系统怎采用针对性较强的专业化设计,技术要求是满足具体应用,技术发展方向是在保证应用系统的技术要求和可靠性的前提下,尽可能减小成本、体积和功耗。
5.嵌入式处理器的分类
答:1嵌入式微处理器MPU 2嵌入式微控制器MCU 3 嵌入式DSP处理器
4嵌入式片上系统SOC 5 嵌入式可编程片上系统SOPC
6. 嵌入式操作系统的作用是什么?请举出3种常见的操作系统。
答:用于管理存储器分配、中断处理、任务间通信和定时器响应,以及提供多任务处理等功能。嵌入式操作系统,大大地提高了嵌入式系统硬件工作效率,并为应用软件开发提供了极大的便利。3种常见的操作系统:WinCE、Vxworks、uClinux
7.嵌入式系统开发流程
答:嵌入式系统开发流程一般可分为4个阶段:需求分析阶段、硬件开发阶段、软件开发阶段和程序固化阶段。
第二章 ARM处理器编程基础
1.计算机中的两种典型体系结构是什么,各自的特点是什么?
冯·诺依曼体系和哈佛体系结构
冯·诺依曼体系:
1)数据与指令都存储在同一存储区中,取指令与取数据利用同一数据总线。
2)被早期大多数计算机所采用
3)ARM7——冯诺依曼体系
结构简单,但速度较慢。取指不能同时取数据
哈佛体系结构:
1)程序存储器与数据存储器分开.
2)提供了较大的存储器带宽,各自有自己的总线。
3)适合于数字信号处理.
4)大多数DSP都是哈佛结构.
5)ARM9是哈佛结构
6)取指和取数在同一周期进行,提高速度,
改进哈佛体系结构分成三个存储区:程序、数据、程序和数据共用
2.在ARM系列中,ARM7, ARM9分别是什么体系结构。
ARM7是冯·诺依曼体系结构 ARM9是哈佛体系结构
3.ARM7处理器,PXA270处理器分别采用几级流水线;
ARM7采用的是3级流水线 PXA270采用的是7级流水线
4. ARM处理器有几种工作状态,各自的特点。工作状态之间如何进行转换,异常响应时,处理器处于何种状态。
答:ARM有两种工作状态:
①ARM状态,此时处理器执行32位的字对齐的ARM指令。
②Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令.
在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且不影响处理器运行模式和相应寄存器中的内容。ARM指令集和Thumb指令集均有切换处理器状态的指令,并可在两种工作状态之间切换,但ARM微处理器在上电或复位后,应该处于ARM状态。
执行BX跳转指令,将操作数的状态位(位0)设置为1时,可以使处理器从ARM状态切换到Thumb状态。此外,当处理器处于Thumb状态时发生异(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。
执行BX跳转指令,将操作数的状态位(位0)设置为0时,可以使处理器从Thumb状态切换到ARM状态。此外,当处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。
THUMB指令集在功能上只是ARM指令集的一个子集,某些功能只能在ARM状态下执行,如CPSR和协处理器的访问.
进行异常响应时,处理器会自动进入ARM状态.
即使是一个单纯的THUMB应用系统,必须加一个汇编的交互头程序,因为系统总是自动从ARM开始启动
5.ARM体系结构所支持的最大寻址空间为4GB;
6.ARM处理器数据存储格式有哪几种?各自的特点?能否举例进行说明。
答:ARM存储器有大端格式和小端。大端格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中;小端格式则相反。
7.ARM处理器数据类型包括哪些?各自特点。
答:字(Word):在ARM体系结构中,字的长度为32位,而在8位/16位处理器体系结构中,字的长度一般为16位。
半字(Half-Word):在ARM体系结构中,半字的长度为16位,而在8位/16位处理器体系结构中字的长度一致。
字节(Byte):在ARM体系结构和8位/16位处理器体系结构中,字的长度均为8位。
由于一个字数据占用地址空间中的4个字节的地址,因此其地址总是4的倍数,在二进制计数中,字数据的地址低2位总为0,称为地址4字节对齐(地址的低两位为0);同理,半字需要2字节对齐(地址的最低位为0)
8.ARM处理器一共有几种中工作模式,分别是?那种模式下,专业寄存器最多。
ARM处理器一共有7种运行模式,它们分别是:用户模式(user)、快速中断模式(fiq)、外部中断模式(irq)、管理模式(svc)、数据访问中止模式(abt)
系统模式(sys)和未定义指令中止模式(und)。
9.ARM处理器正常工作时,处于何种工作模式?
答:用户模式(user)。
9.ARM处理器共有多少个32位寄存器,多少个为通用寄存器,多少个状态寄存器。
答:共有37个32位寄存器,其中31个为通用寄存器,可用于累加操作,6个为状态寄存器。
10. 在ARM指令中,R13寄存器常用?R14寄存器被称为?,R15寄存器?
答:R13常用做堆栈指针,R14被称为子程序连接寄存器或连接寄存器。
R15寄存器用于保存程序计数器(PC)。R15一般不作为通用寄存器使用
11. 弄清楚CPSR每一位的含义,例如:条件标志位N,Z,C,V;控制位;T标志位
条件码标志位:N·Z·C·V
N:Negative/Less Than 当用两个补码表示的带符号数进行运算时,N=1表示运算结果为负;N=0表示运算结果为正或者0
C:Carry/Borrow/Extend
可以有4种方法设置C的值:加法运算(包括反值比较指令CMN);当运算产生了进位时(无符号数溢出),C=1,否则C=0;
减法运算(包括比较指令CMP);当运算产生了借进位时(无符号数溢出),C=1,否则C=0;
对于包含移位操作的非加/减运算指令,C为移出值的最后一位。
杜宇其他的非加/减运算指令,C的值通常不改变
V:Overflow
可以有2种方法设置V的值:
对于加/减运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号位溢出。
对于其他非加/减运算指令,V的值通常不改变。
Q:在ARM v5及以上版本的E系列处理器中,用Q标志位指示增强的DSP运算指令是否发生溢出。其他版本的处理器,Q标志位无定义。
控制位:
程序状态寄存器(PSR)的低8位(包括I·F·T和M【4:0】)为控制位,当发生异常时,这些位可以被改变,如果处理器运行特权模式,这些位也可以有程序修改。
I·F:中断禁止位 I=1:禁止IRQ中断 F=0:禁止FIQ中断
T标志位:
T标志位反映处理器的运行状态。对于ARM v5及以上版本的T系列处理器中,当该位为1时,程序运行Thunm状态,否则运行于ARM状态。
对于ARM v5及以上版本的非T系列处理器中,当该位为1时,执行吓一跳指令以引起未定义指令异常;当该为为0时,表示运行于ARM状态。
运行模式位M【4:0】 M0·1M2·M3·M4是模式位,这些决定了处理器的运行模式
12.ARM指令的寻址方式。
(1)寄存器寻址; (2)立即寻址;
(3)寄存器偏移寻址; (4)寄存器间接寻址;
(5)基址变址寻址; (6)多寄存器寻址;
(7)堆栈寻址; (8)块拷贝(复制)寻址;
(9)相对寻址。
13.掌握ARM指令集,常用指令的使用。
跳转指令: B BL
数据处理指令: MOV ADD SUB AND ORR
程序状态寄存器访问指令:MRS MSR
加载/存储指令:
1)LDR指令 LDR LDRB LDRH
2)STR指令 STR STRB STRH
3)批量数据加载/存储指令 LDM STM
14.ARM伪指令(掌握教科书中提到的即可);汇编语言的编程;C语言编程,混合编程。
AREA ENTRY END IMPORT GET(或INCLUDE)
15.ADS集成开发环境的使用
第三章 嵌入式硬件开发
1.如何进行ARM芯片的选型
2.最小系统的组成
S3C4510B最小系统包含处理器电路、电源电路、晶体振荡器电路、复位电路和存储器电路。
3.PXA270处理器的特点
Quick Capture为成像设备与无线设备提供接口,有助于改进图像质量以及降低产品整体成本,该项技术包括快速浏览、快速拍照和快速视频拍摄三种操作模式。
Speed Step技术可以智能切换空闲、待机和深层睡眠三种低功耗状态,以提高动态电压管理性能,可在一定程度上缓解目前手持设备普遍存在电池续航能力较弱的现象,在保证CPU性能的情况下,最大限度地降低移动设备功耗。
Pentium's MMX是一种基于Intel MMXT先进的多媒体指令集MMX技术,使得基于Bulverde的无线设备在拥有堪与PC相比的多媒体性能同时,能够最大限度减轻系统功耗,另一方面,也有助于软件开发商提供类似游戏、MPEG4视频文件以及语音识别等应用服务。
Intel同时还发表了配合PXA270使用的图形协处理器——2700G多媒体加速器。这颗芯片可以以每秒30帧,的速度播放MPEG4或WMV的图像,使PXA270的多媒体性能达到极大提升。
第四章 无操作系统的嵌入式软件开发
1.无操作系统嵌入式软件开发的流程。
2.什么是初始化程序?bootloader的作用。
答:初始化程序是系统加电后运行的第一段软件代码。在嵌入式系统中,通常整个系统的加载启动任务就完全由BootLoader来完成。简单地说,BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软、硬件环境带到一个合适的状态,以便为调用应用程序或者操作系统内核准备好正确的环境。
3.PXA270处理器(重点掌握GPIO,UART,LCD);如:GPIO的个数(121),UART个数(实验箱4个),分别是哪些,LCD屏的分类,Frame Buffer大小的计算,以及对这些接口的编程。
第五章 有操作系统的嵌入式软件开发
1. 有无操作系统嵌入式软件开发的流程
2. uCLinux操作系统的特点,与Linux操作系统的区别?
答:uCLinux具有如下一些主要特点:
(1)通用的Linux API (2)uCLinux kernel 的大小小于512KB
(3)完整的TCP/IP协议堆栈(4)支持大量其他的网络协议
(5)支持各种文件系统,包括 NFS、Ext2、romfs、JFFS、MS-DOS及FAT16/32
uCLinux与Linux具有如下几点区别:
(1)uCLinux针对不含有MMU的处理器进行了修改;(2)为了减小编译后文件大小,uCLinux重写了函数库;(3)uCLinux的多进程管理通过vfork来实现,uCLinux只能支持vfork,没有使用Linux下的fork.
3.开发环境的建立
建立主机Linux平台
建立交叉开发环境的第一步,是建立一个Linux平台来对应用程序和内核进行编译,通常使用虚拟软件VMware和Red Hat Linux来搭建一个在Windows环境下运行的Linux平台。步骤如下:
1)在PC机上安装并运行VMware
2)安装Red Hat Linux操作系统
4.常用Linux命令
ls 列出当前目录下的文件名
改变工作目录 cd
复制文件cp
移动或更改文件、目录名称mv
建立新目录mkdir
删除目录rmdir
删除文件 rm
显示文件或目录大小命令 du
显示当前路径命令 pwd
备份文件命令tar
5.什么是交叉编译工具。
答:交叉编译是一个平台上生成另外一个平台上的可执行代码。使用交叉编译工具有很多种原因,有时是因为目标平台上不允许或不能够安装所需的编译器;有时是因为目标平台资源贫乏,无法运行所需编译器;有时是因为目标平台还没有建立,连操作系统都没有,根本无法运行编译器。
6.make ,makefile
答:makefile文件用来描述源程序之间的相互关系并自动维护编译工作。Make是一个命令工具,它用来解释makefile中定义的指令或规则。
7.内核编译命令
步骤编号 |
命令 |
作用 |
1 |
Make dep |
读取配置过程生成的配置文件,创建对应于配置的依赖关系树,从而决定哪些需要编译 |
2 |
Make clean |
删除以前编译内核时留下的各种文件,以避免出现一些错误 |
3 |
Make lib_only |
编译库文件 |
4 |
Make use_only |
编译用户应用程序 |
5 |
Make romfs |
建立romfs文件系统下的文件目录 |
6 |
Make image |
生成可烧写到Flash并运行的image.rom内核映像文件 |
7 |
make |
8.如何向内核添加应用程序?
答:向内核添加应用程序主要由以下几个步骤构成:编写程序源代码,添加应用程序至内核,编译内核,下载内核至Flash存储器。其中添加应用程序至内核又包括了:添加程序文件至内核源代码目录中,为程序文件建立make文件,修改内核make文件,修改内核配置文件config.in,修改内核rc文件设置程序为自启动。
练习一
1. 已知R0=8,R2=5,执行MOV R0,R2,LSL #2后,r0=20,r2=5
2. 已知r0=0x00000000,r1=0x00009000,
men32[0x00009000]=0x01010101,mem32[0x00009004]=0x02020202
问执行以下指令后,r1,r0的情况
1) ldr r0,[r1,#0x4]! ;r0=0x02020202,r1=0x00009004
2) Ldr r0, [r1,#0x4] ;r0=0x02020202,r1=0x00009000
3) Ldr r0,[r1], #0x4 ;r0=0x01010101,r1=0x00009004
3. 已知men32[0x80018]=0x03,
men32[0x80014]=0x02, men32[0x80010]=0x01,r0=0x00080010,
r1=0x00000000,r2=0x00000000,r3=0x00000000
问执行ldmia r0!,{r1-r3}后,r0,r1,r2,r3的情况
r1=0x01,r2=0x02,r3=0x03,r0=0x80018
4. 已知r1=0x00000002,r4=0x00000003,sp=0x00080014,
问执行stmfd sp!,{r1,r4}后, r1,r4,sp的情况
r1=0x00000002, r4=0x00000003,sp=0x000800010
5. 已知r0=0x0,cpsr=0xd3,执行以下指令后r0的情况
Mrsr0,cpsr ; r0=0xd3
Bicr0,r0,#0x80 ; r0=0x53
<from 百度文库阅读与自己总结>
谢谢支持,后续更新更精彩!
arm 嵌入式系统复习大纲相关推荐
- 与通用计算机相比 单片机具体有哪些特点,嵌入式系统-复习大纲_彭荣
1. 什么是嵌入式系统?与通用计算机相比,嵌入式系统有哪些特点? 嵌入式系统是以应用为中心,以现代计算机技术为基础,根据用户需求在功能.可靠性.成本.体积.功耗.等方面灵活裁剪软硬件模块的专用计算机系 ...
- 嵌入式系统linux试题,2016年嵌入式系统复习试题及答案
2016年嵌入式系统复习试题及答案 一.填空题: 1.试列举三种主流的嵌入式处理器:( ARM ).( MIPS ).(PowerPC). 2.ARM处理器共有(37)个寄存器,其中包括(31个通用寄 ...
- ARM嵌入式系统malloc的实现(C源码)
在ARM嵌入式系统实现malloc内存分配机制. 在ARM cpu上验证通过. ps:也可在pc ubuntu linux进行验证 #include "include/lib_replace ...
- 8、ARM嵌入式系统:UART初始化
一.UART概述 百度上UART的定义:通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART.它将要传输的资料在串行通信与并行 ...
- 7、ARM嵌入式系统:LCD/数码管/OLED初始化
一.LCD/数码管模块在板子上的位置 LCD和数码管在板子上都分别有一个插槽. 二.LCD/数码管初始化代码 //SMG init void SMG_Init() { /* PORTB and POR ...
- 网络上所谓的《ARM嵌入式系统入门最好的文章》
一 首先说说ARM的发展 可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位. 广义的嵌入式无非几种:传统的什么51.AVR.PIC称做嵌入式微控制器:ARM是嵌入式微处理器 ...
- [ARM嵌入式系统开发]第一章之嵌入式系统的软硬件
本章的最后,通过描述ARM为核心的嵌入式系统,来介绍了嵌入式系统的软件和硬件构成和结构.这里根据这部分的介绍以及其他的文章,描述下通用的嵌入式系统的软件和硬件. 首先来说下硬件,书中说,包含有 ...
- 【嵌入式系统复习】嵌入式网络与协议栈
目录 开放式系统互连模型 总线通信的报文组形式以及传递方式 报文组形式 报文传递方式 网络分配与调度 嵌入式TCP/IP 蓝牙技术 蓝牙的节能状态 纠错方案 蓝牙协议栈 开放式系统互连模型 ISO/O ...
- 嵌入式:ARM嵌入式系统开发流程概述
文章目录 嵌入式开发的具体过程 开发流程图 嵌入式软件开发环境 交叉开发环境 远程调试结构图 嵌入式应用软件开发的基本流程 软件模拟环境 目标板与评估板 嵌入式软件开发的可移植性和可重用性 嵌入式开发 ...
- linux filo顺序是什么意思,嵌入式系统复习 南京邮电大学 期末复习 答案 提纲
1.嵌入式系统定义p1 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能.可靠性.成本.体积和功耗等严格要求的专用计算机系统. 2.嵌入式系统的组成结构,层次关系p4.板 ...
最新文章
- actframework mysql_问题处理记录
- Linux jdk配置/下载/安装简单说明
- 跨国婚姻登记指南是怎样的一个流程呢??
- [洛谷P4735]最大异或和
- Android、Java验证手机号是否合法
- map mybatis 的字段返回0_Mybatis 你踩过坑吗?
- HBase之BloomFilter
- Django框架里的MVC思想
- [转载] Python3 数组
- 3-1:类与对象入门——类的引入和类的定义以及访问限定符和封装还有对面向对象的理解
- python3视频教程哪个好_2020年5个经典python编程入门视频教程推荐学习
- 机器学习笔记 - AutoML框架FLAML初体验
- 实战!如何搭建一个完整的智能家居系统
- [FormulaExcelPython] 一次指数平滑、二次指数平滑、三次指数平滑(Holt-Winters)...
- 超星未来:让智能驾驶更简单! | 百万人学AI评选
- 计算机毕业设计之java+ssm供应链管理信息系统
- 《士兵突击》之成才:请关爱我们自己的另一半
- vue项目中使用百度地图功能
- 20162316刘诚昊 队列课下作业
- 计算机二级WPS 选择题(模拟和解析二)
热门文章
- Linux系统分区访问windows分区提示挂载失败
- dell 恢复出厂系统
- smartdns使用指南_OpenWrt之SmartDNS 使用教程(PW版)
- H5网页实现录音并转换为文字
- HTML中使用IconFont图标
- 延边大学计算机考研压分吗,这6所大学被严重低估,2020届高三考生注意收藏!适合“捡漏”...
- python自动登录教程_python+selenium实现京东自动登录及秒杀功能
- 用python快速导出浏览器的标头(headers)
- idea登录页面ajax验证,IDEA如何实现登录注册页面 IDEA实现登录注册页面代码示例...
- 不使用脚手架搭建vue项目