收藏 分享(赏)

嵌入式系统原理复习题.doc

上传人:精品资料 文档编号:8595803 上传时间:2019-07-04 格式:DOC 页数:8 大小:523.15KB
下载 相关 举报
嵌入式系统原理复习题.doc_第1页
第1页 / 共8页
嵌入式系统原理复习题.doc_第2页
第2页 / 共8页
嵌入式系统原理复习题.doc_第3页
第3页 / 共8页
嵌入式系统原理复习题.doc_第4页
第4页 / 共8页
嵌入式系统原理复习题.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、复习提纲一、嵌入式系统及 ARM(Advanced RISC machines)处理器概述1. 嵌入式系统的概念(IEEE 定义和国内普遍认同的定义)根据 IEEE(国际电气和电子工程师协会)的定义:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”;嵌入式系统是以应用为中心,以计算机技术为基础,软、硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。2. 嵌入式系统的组成(硬件组成和软件组成)硬件+软件硬件:由嵌入式微处理器、外围硬件设备组成软件:包括底层系统软件和用户应用软件 应 用 软 件 嵌 入 式 操 作 系 统 硬 件 设 备 嵌 入 式 处

2、 理 器 外 围 设 备 二、CM4 体系结构1. CM4 内核三级流水线的三个阶段,如假设某嵌入式处理器有 3 级流水线,每级流水线所耗时间均为为 2ms,则执行 25 条指令需要耗费时间?三级流水线,分别是取指、译码和执行;为了兼容 Thumb 代码,读取 PC 会返回当前指令地址+4。偏移量总是 4, 不管是执行 16 位指令还是 32 位指令, 这保证了 Thumb 和 Thumb-2 指 令之间的一致性。ARM 的完整拼写形式为 Acorn RISC Machine ,CM4 处理器内部正在执行的指令的地址为 0x08000100,此时读取 PC 的值,该值为 0x08000104

3、。2. CM4 内核读取指令及访问数据的三套总线、CM4 内核的两种运行模式、两种权限级别,上电复位后是什么模式什么级别三套总线:I-code 总线 D-code 总线 系统总线CM4 处理器有两种模式:线程模式、handler 模式,还支持两种操作级别:特权级、非特权级(用户级)。复位后是特权级下的线程模式 3. CM4 内核的寄存器组中,各个寄存器的作用及各个寄存器的访问权限级别、CM4 的复位序列R0-R7 低组通用寄存器;R8-R12 高组通用寄存器;R13 堆栈寄存器;(MSP,PSP)R14 连接寄存器; R15 程序计数寄存器;xPSR 程序状态寄存器;程序状态寄存器(xPSR)

4、程序状态寄存器在其内部又被分为三个子状态寄存器:应用程序状态寄存器( APSR)中断状态寄存器( IPSR)执行状态寄存器( EPSR)通过 MRS/MSR 指令,这 3 个 PSRs 即可以单独访问,也可以组合访问( 2 个组合, 3 个组合都可以)。当使用三合一的方式访问时,应使用名字“ xPSR”或者“ PSR”。三、 CM4 程序设计Cortex-M4 内核在执行指令时,只有一种状态,那就是 Thumb 状态。1. CM4 寻址方式、常用指令: MOV AND ORR(有 1 为 1,为 0 为 0) BIC( 清 0) EOR(异或,相异出 1) SUB ADD TST TEQ CM

5、P LDR(加载) STR(存储) LDRB(8 位无符号字加载) STRB(8 位无符号字存储) LDM(多寄存器加载) STM(多寄存器存储 ) B(无条件跳转) BL BX BLX MRS(读取特殊寄存器的值到通用寄存器 ) MSR(将通用寄存器的值写到特殊寄存器 )伪指令:LDR2. 指令的条件码如:NE(不等于) EQ(等于) LT(小于) GT(大于)等,后缀“S ”“!”,什么样的指令会影响 APSR 寄存器的标志位“S”后缀:指令中使用 “S”后缀,指令执行后状态寄存器的条件标志 位将被刷新;不使用“S”后缀时,指令执行后状态寄存器的条件标志位不会发生变化。如果指令地址表达式中

6、不含“!”后缀,则基址寄存器中的地址不会发生变化,指令中含有则变化N E C V S3. 伪操作:伪操作主要有符号定义伪操作、数据定义伪操作、汇编控制伪操作及其杂项伪操作等DCB(字节)、 DCD(字 )、AREA(用于定义一个代码段或数据段)、END( 用于指示源程序结束)、EQU(用于定义字符名称)、IMPORT(IMPORT 用于通知编译器当前符号不在本文件中 )、EXPORT(EXPORT (或 GLOBAL)用于声明符号可以被其他文件引用。)4. ATPCS 规则中寄存器的使用、参数传递、子程序返回的规则子程序间通过寄存器 R0、R1、R2、 R3 来传递参数。如果参数多于 4个,则

7、多出的部分用数据栈传递。被调用的子程序在返回前无需恢复寄存器 R0-R3 的内容。在子程序中,使用寄存器 R4-R11 来保存局部变量如果在子程序中使用到了寄存器 R4-R11 中的某些寄存器,子程序进入时必须保存这些寄存器的值,在返回前必须恢复这些寄存器的值;对于子程序中没有用到的寄存器则不必进行这些操作。在 Thumb 程序中,通常只能使用寄存器 R4-R7 来保存局部变量。寄存器 R13 用作数据栈指针,记作 sp。在子程序中寄存器 R13 不能用作其他用途。寄存器 sp 在进入子程序时的值和退出子程序时的值必须相 等。连接寄存器 R14(lr )。它用于保存子程序的返回地址。如果在子程

8、序中 保存了返回地址,寄存器 R14 则可以用作其他用途。寄存器 R15 是程序计数器,记作 pc。它不能用作其他用途 。ATPCS 规定堆栈为 FD 类型,即满递减堆栈。并且堆栈的操作是 8 字节 对齐。t子程序结果返回规则1.结果为一个 32 位的整数时,可以通过寄存器 R0 返回。2.结果为一个 64 位整数时,可以通过 R0 和 R1 返回,依此类推。3.结果为一个浮点数时,可以通过浮点运算部件的寄存器 f0,d0 或者 s0 来返回。4.结果为一个复合的浮点数时,可以通过寄存器 f0-fN 或者 d0-dN 来返回。5.对于位数更多的结果,需要通过调用内存来传递.5. C 程序如何调

9、用汇编程序,汇编程序如何调用 C 程序在汇编程序中使用 EXPORT 伪指令声明本子程序,使其它程序可以调用此子程序。在 C 语言程序中使用 extern 关键字声明外部函数(声明要 调用的汇编子程序),即可调用此汇编子程序。在汇编程序中使用 IMPORT 伪指令声明将要调用的 C 程序函数.在调用 C 程序时,要正确设置入口参数,然后使用 BL 调用.四、STM32F439 GPIO1. 重点掌握 GPIO 相关寄存器的定义方法及各个寄存器的主要功能2. 能够编程操控某一组 GPIO #define GPIOF_MODER (*(volatile unsigned int *)0x40021

10、400)#define GPIOF_OTYPER (*(volatile unsigned int *)0x40021404)#define GPIOF_OSPEEDR (*(volatile unsigned int *)0x40021408)#define GPIOF_PUPDR (*(volatile unsigned int *)0x4002140C)#define GPIOF_ODR (*(volatile unsigned int *)0x40021414)#define RCC_AHB1ENR (*(volatile unsigned int *)0x40023830)void

11、Delay(unsigned int nCount)for(; nCount != 0; nCount-);void Port_init(void)RCC_AHB1ENR |= 0x20;GPIOF_MODER &= (0xff=CCR1 时输出 1。那么就可以得到如上的 PWM 示意图:当 CNT 值小于 CCR1 的时候, IO 输出低电平(0),当 CNT 值大于等于 CCR1 的时候,IO 输出高电平(1) ,当 CNT 达到 ARR 值的时候,重新归零,然后重新向上计数,依次循环。改变 CCR1 的值,就可以改变 PWM 输出的占空比,改变 ARR 的值,就可以改变 PWM 输出的频率。九、CM4 地址空间划分1. CM4 内核访问的地址空间有多大?划分成了哪 8 个部分?4GB 的地址空间被分为 8 个相等的部分,每个部分 0.5GB,分别是 Code、SRAM、Peripheral 、 2 个 RAM 区、2 个 Device 区、System。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报