嵌入式操作系统实验3-0

2026/1/27 10:05:08

浙江大学城市学院实验报告

课程名称: 嵌入式操作系统实验3 实验名称: ARM工作模式切换程序设计与调试 学生姓名: 专业: 学号:

同组学生姓名: 指导老师: 成绩:

一、实验目的

本实验主要的内容是在CodeWirrior IDE下创建工程;并设置汇编程序开发的相应环境。然后,设置IDE的属性。本实验在实验2的基础上,对ARM工作模式切换程序设计与调试。

1)掌握ARM的各种工作模式。

2)熟悉ARM各种工作模式下的寄存器的应用。 3)学会使用软件编程实现ARM工作模式间的切换。

二、实验内容

对ARM工作模式切换程序设计与调试。ARM工作模式间的切换主要有两种方式:软件切换与硬件切换。问:

1)软件模式下使用什么指令进行切换?

2)硬件切换通过什么来改变ARM工作模式?

三、实验设备

1.教学实验箱,PentiumII 以上的PC 机,硬件多功能仿真器。 2.PC操作系统WIN98或WIN2000或WINXP,ADS1.2集成开发环境,仿真器驱动程序。

四、实验步骤

任务1:ARM工作模式切换程序

(注意:建立工程模仿下列步骤做,但要求工程名为自己的学号c) 1.新建ARM工程

2.把汇编程序添加到工程中

AREA INTI,CODE,READONLY ENTRY B RESET_HANDLER UNDEFINED_HANDLER B UNDEFINED_HANDLER B SWI_HANDLER PREFETCH_HANDLER B PREFETCH_HANDLER ABORT_HANDLER B ABORT_HANDLER NOP

IRQ_HANDLER B IRQ_HANDLER FIQ_HANDLER B FIQ_HANDLER

SWI_HANDLER MOV PC,LR

RESET_HANDLER MOV R0,#0x000001F0 LDR R1,=0xF0000000 STR R0,[R1] MRS R0,CPSR MOV R13,#1 MOV R14,#2 MRS R0,CPSR BIC R0,R0,#0x1F ORR R0,R0,#0x10 MSR CPSR_c,R0 MOV R13,#3 MOV R14,#4

STOP B STOP END

3.设置

1)ARM Assembler选项中的Target选项卡(ARM7TDMI) 4.编译

5.打开ARM调试器AXD,Options->Configure Target选项,打开Choose Target对话框,在Choose Target中选择ARMUL,点击Configger按扭,选择处理器ARM7TDMI,点击OK。

6.载入映像文件*.axf 7.观察处理器窗口

1)选择Processor Views->Disassembly,打开ARM反汇编窗口; 2)选择Processor Views->Registers,打开ARM寄存器窗口; 3)选择Processor Views->Memory,打开ARM存储器窗口;在Memory Start Address地址栏中输入地址0xF0000000

8.单步运行程序,观察ARM寄存器、存储空间和工作模式的变化情况。 9.完成下列表格: 序号 执行指令 指令执行后的变化情况 寄存器值(16进制表示) 存储工作空间 R0 R1 R13_svc R14_svc R13_usr R14_usr R15 CPSR 0xF0000000 模式 0 1 2 3 4 5 6 7 8 9 10 11 12 13 ------- ---- 10.通过网络查找,解释程序的含义,要求在语句后以解释的方式对每一条语句给出解释(不同颜色),然后写出整个程序的含义。

任务2:调试方法

(注意:建立工程模仿下列步骤做,但要求工程名为自己的学号d) 1.新建ARM工程

2 把汇编程序添加到工程中

注意:程序中有意给出2个很简单的错误,在程序调试中需要自己解决。 AREA INIT_STACK,CODE,READONLY ENTRY START MOV R1,#1 BL INIT_STACK MRS R1,CPSR BIC R1,R1,#0x80 MSR CPSR_cxsf,R1 MSR CPSR_c,#0xd0 MRS R3,CPSR BIC R3,R3,#0x80 MSR CPSR_cxsf,R3 MSR CPSR_c,#0xdf STOP B STOP

INIT_STACK MOV R0,LR

LDR SP,P_SVC_STK MSR CPSR_c,#0xd2 LDR SP,P_IRQ_STK MSR CPSR_c,#0xd1 LDR SP,P_FIQ_STK STMED SP!,{R0,R1} NOP MSR CPSR_c,#0xd7 LDR SP,P_ABT_STK MSR CPSR_c,#0xdb LDR SP,P_UND_STK MSR CPSR_c,#0xdf LDR SP,P_USR_STK MOV PC,R0 ;定义各工作模式下的堆栈长度 USR_STK_LEN EQU 4 SVC_STK_LEN EQU 4 IRQ_STK_LEN EQU 4 FIQ_STK_LEN EQU 4 ABT_STK_LEN EQU 4 UND_STK_LEN EQU 4 ;定义各工作模式下的堆栈指针 P_USR_STK DCD USR_STK_SPC + (USR_STK_LEN-1)*4 P_SVC_STK DCD SVC_STK_SPC + (SVC_STK_LEN-1)*4 P_IRQ_STK DCD IRQ_STK_SPC + (IRQ_STK_LEN-1)*4 P_FIQ_STK DCD FIQ_STK_SPC + (FIQ_STK_LEN-1)*4 P_ABT_STK DCD ABT_STK_SPC + (ABT_STK_LEN-1)*4 P_UND_STK DCD UND_STK_SPC + (UND_STK_LEN-1)*4 ;定义各工作模式下的堆栈空间 AREA STACKS,DATE,READWRITE USR_STK_SPC SPACE USR_STK_LEN*4 SVC_STK_SPC SPACE SVC_STK_LEN*4 IRQ_STK_SPC SPACE IRQ_STK_LEN*4 FIQ_STK_SPC SPACE FIQ_STK_LEN*4 ABT_STK_SPC SPACE ABT_STK_LEN*4


嵌入式操作系统实验3-0.doc 将本文的Word文档下载到电脑
搜索更多关于: 嵌入式操作系统实验3-0 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219