20081005232张云能_ARM嵌入式系统结构与编程实验一.docVIP

  • 6
  • 0
  • 约9.13千字
  • 约 14页
  • 2018-02-06 发布于河南
  • 举报

20081005232张云能_ARM嵌入式系统结构与编程实验一.doc

20081005232张云能_ARM嵌入式系统结构与编程实验一

昆明理工大学信息工程与自动化学院学生实验报告 ( 2010 —2010 学年 第 1 学期 ) 课程名称:ARM嵌入式系统结构与编程 开课实验室:信自楼433 2010 年12 月 10 日 年级、专业、班 计科082 学号 200810405232 姓名 张云能 成绩 实验项目名称 ARM汇编指令的简单使用 指导教师 江虹 教师评语 该同学是否了解实验原理: A.了解□ B.基本了解□ C.不了解□ 该同学的实验能力: A.强 □ B.中等 □ C.差 □ 该同学的实验是否达到要求: A.达到□ B.基本达到□ C.未达到□ 实验报告是否规范: A.规范□ B.基本规范□ C.不规范□ 实验过程是否详细记录: A.详细□ B.一般 □ C.没有 □ 教师签名: 年 月 日 实验一 ARM汇编指令的简单使用 一、实验目的 初步学会使用Embest IDE for ARM 开发环境及ARM软件模拟器; 通过实验掌握简单ARM汇编指令的使用方法。 二、实验原理 ARM处理器共有37个寄存器: 31个通用寄存器,包括程序计数器(PC)。这些寄存器都是32位。 6个状态寄存器。这些寄存器也是32位,但只使用了其中的12位。 ARM通用寄存器 通用寄存器(R0~R15)可分为3类。 不分组寄存器R0~R7 R0~R7是不分组寄存器。在所有处理器模式下,它们都能被访问。它们是真正的通用寄存器,没有体系结构所隐含的特殊用途。 分组寄存器R8~R14 R8~R14是分组寄存器。被访问的物理寄存器取决于当前的处理器模式。若要访问特定的物理寄存器而不依赖当前的处理器模式,则要使用规定的名字。 寄存器R8~R12各有两组物理寄存器:一组为FIQ模式,另一组为除了FIQ模式以外的所有模式。R8~R12没有任何指定的特殊用途。只是使用R8~R12来简单地处理中断。寄存器R13和寄存器R14各有6个分组的物理寄存器,1个用于用户模式和系统模式,其他5个分别用于5种异常模式。R13通常用作堆栈指针,称作SP。每种异常模式都有自己的R13。R14用作子程序链接寄存器,也称作LR。 程序计数器R15 寄存器R15用作程序计数器(PC)。 本实验中,ARM核工作在用户模式,R0~R15可用。 存储器格式 ARM体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。 大端格式 在这种格式中,字数据的高位字节存储在低地址中,而字数据的低位字节存 放在高地址中,如下所示: 高地址 31 23 22 16 15 8 7 0 字地址 8 9 10 11 8 4 5 6 7 4 0 1 2 3 0 低地址 小端格式 在这种格式中,字数据的高位字节存储在高地址中,而字数据的低位字节存 放在低地址中,如下所示: 高地址 31 23 22 16 15 8 7 0 字地址 11 10 9 8 8 7 6 5 4 4 3 2 1 0 0 低地址 3.GNU基础知识 Embest IDE集成了GNU汇编器as、编译器gcc和链接器ld。因此,编写程序要符合GNU的语法和规则。这里简单介绍几点基本知识: 程序默认入口点为“_start”,代码段默认起始地址为0x8000 常用伪操作符 .equ 为数字常量、基于寄存器的值和程序标号定义一个字符名称。 .global及.globl 声明一个符号可以被其他文件引用,相当于声明了一个全局变量。 .text 将操作符开始的代码编译到代码段或代码段子段(Subsection)。 .end 标记汇编文件的结束行。 三、实验内容 熟悉开发环境的使用并使用ldr/str,mov等指令访问寄存器或存储单元。 使用add/sub/lsl/lsr/and/orr等指令,完成基本数学/逻辑运算。 运行Embest IDE集成开发环境,将下面两段参考程序分别编辑输入,生成目标代码,设置调试模块,下载目标代码到软件仿真器。 四、实验步骤 利用 Embest IDE 集成开发环境完成嵌入式开发的基本开发流程如下: 建立工程—— 编辑源文件——编译源文件——调试—— 软件固化。 工程的建立 在Embest IDE集成开发环境中,工程是一个非常重要的概念,它是用户组织一个应用的所有源文件、设置编译链接选项、生成调试信息文件和最终目标Bin文件的一个基本结构。一个工程

文档评论(0)

1亿VIP精品文档

相关文档