ARM处理器的工作模式(一)

发布者:学思者最新更新时间:2016-04-19 来源: eefocus关键字:ARM  处理器  工作模式 手机看文章 扫描二维码
随时随地手机看文章
实验目的:
1.         掌握ARM的各种工作模式
2.         熟悉ARM各种工作模式下的寄存器
3.         学会使用软件实现ARM工作模式间的切换。
实验内容:
使用MSR/MRS指令切换工作模式,并初始化各工作模式下的堆栈指针。
观察ARM在各种工作模式下寄存器的区别。
观察ARM在各种工作模式间切换时各寄存器的变化情况。
 
 
实验一 使用MSR/MRS指令切换工作模式实验(ARM7)(exp9_exa.s)
                    AREA INIT,CODE,READONLY
                    ENTRY
                    B RESET_HANDLER    ;管理模式SVC
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   ;初始化R0(  IFT=1;用户模式  )          
                    LDR R1,=0xF0000000   
                    STR R0,[R1]            ;保存R0
                    MRS R0,CPSR          ;CPSR——>R0
                    MOV R13,#1            ;写入R13=1
                    MOV R14,#2             ;写入R14=2
                    
                    MRS R0,CPSR           ;CPSR——>R0
LDR R1,=0xF0000000   
                    STR R0,[R1]            ;保存R0
                   
 
BIC R0,R0,#0x1F
                    ORR R0,R0,#0x10         ;改写R0
                    MSR CPSR_c,R0    ;R0——> CPSR (切换至用户模式USR)
                    MOV R13,#3              ;写入R13=3
 
                    MOV R14,#4               ;写入R14=4
                   
STOP          B STOP
                    END
本实验使用MSR/MRS指令完成系统初始化过程中从管理模式到用户模式的切换,采用ARMmulator方式调试,选用ARM7作为目标处理器。
单步运行程序,观察ARM寄存器、存储空间和工作模式的变化情况,并填入表中。
序号 执行指令 指令执行后的变化情况
    寄存器 存储空间 工作模式
    R0 R1 R13_SVC R14_SVC R13_USR R13_USR R15 CPSR 0xF000000  
0                      
1 B RESET_HANDLER                    
2 MOV R0,#0X000001F0                    
3 LDR R1,=0xF0000000                    
4 STR R0,[R1]                    
5 MRS R0,CPSR                    
6 MOV R13,#1                    
7 MOV R14,#2                    
8 MRS R0,CPSR                    
9 BIC R0,R0,#0x1F                    
10 ORR R0,R0,#0x10                    
11 MSR CPSR_c,R0                    
12 MOV R13,#3                    
13 MOV R14,#4                    
                       
 
 

关键字:ARM  处理器  工作模式 引用地址:ARM处理器的工作模式(一)

上一篇:ARM子程序设计
下一篇:ARM处理器的工作模式 (二)

推荐阅读最新更新时间:2024-03-16 14:50

英飞凌基于ARM Cortex-M4内核XMC4000微控制器
XMC4000是英飞凌基于ARM Cortex-M4内核的32位微控制器,XMC4000家族将行业标准内核和英飞凌丰富强大的外设集相结合,适用于电机控制、自动化、智能家居、功率转换、医疗设备、工程机械等广泛的领域。 旋转变压器是一种精密的位置、速度检测装置,尤其适用于高温、严寒、潮湿、高速、振动等环境恶劣、旋转编码器无法正常工作的场合。但是,旋转变压器在使用时并不能直接提供角度或位置信息,需要特殊的激励信号和解调、计算措施,才能将旋转变压器信号中包含的位置信息得到。 英飞凌XMC4000家族中、高端系列集成的Delta-Sigma解调器(Delta-Sigma Demodulator, DSD)模块为旋变位置信号的获取带来
[单片机]
英飞凌基于<font color='red'>ARM</font> Cortex-M4内核XMC4000微控制器
ARM 学习笔记七 (PWM试验)
PWM-脉宽调制。我的理解是通过控制一个计数器来实现不同脉宽的输出,从而驱动蜂鸣器发出不同的声音。 本实验用到的寄存器如下: GPBCON -- I/O端口配置寄存器 B 00=Input 01=Output 10=PWM 11=Reserved GPBDAT -- I/O端口数据寄存器 B GPFUP --I/O端口上拉电阻使能寄存器 B 0=Enable 1=Disabled TCFG0 -- 时钟配置寄存器0 (主要是设置预分频) 定时器输入时钟频率=PCLK/{预分频}/{分割值} {预分频}=1~255 {分割值}=2,4,8,16,32 Address
[单片机]
苏黎世跑分能代表处理器的AI性能吗?
随着手机端加入了越来越多的AI运算,AI性能已经成为手机处理器的一大关键性能指标。近期我们注意到,一款测试工具频繁出现在公众视线中:ETH AI-Benchmark,也就是我们常说的苏黎世跑分。一些处理器厂商经常会援引苏黎世跑分的测试数据,用以展现其AI性能的强大。但苏黎世跑分真能代表处理器的AI性能吗?   苏黎世跑分其实和大家所熟知的安兔兔、GeekBench等跑分软件类似,不同的是,苏黎世跑分是专门针对AI性能的一款跑分软件,它通过对象识别、人脸识别、图像去模糊等共9大测试项的测试,根据不同测试项的重要程度不同,匹配不同的权重,最终得出一个表征AI性能的分数。   苏黎世跑分客观吗?   -16位浮点运算占比过大 严重
[手机便携]
苏黎世跑分能代表<font color='red'>处理器</font>的AI性能吗?
创建ARM Linux交叉编译环境实践
一、准备工作 首先需要一台运行Linux操作系统的PC以完成我们的编译工作。 其次要准备如下一些源文件。 1、源文件准备 binutils-2.14.tar.gz ftp://ftp.gnu.org/gnu/binutils/binutils-2.14.tar.gz gcc-core-2.95.3.tar.gz ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3/gcc-core-2.95.3.tar.gz gcc-g++2.95.3.tar.gz ftp://ftp.gnu.org/gnu/gcc/gcc-2.95
[单片机]
快速学Arm(12)--APB,AHB地址与接口的关系
在快速学Arm(3)中,我画了一个LPC2478的存储空间的分别图,在存储空间最上面的两块,0xE000 0000 ~ 0xEFFF FFFF(APB)和0xF000 0000 ~ 0xFFFF FFFF(AHB)两块地址空间.这两块空间分别是大概250M字节的空间.每个250M空间分成36块,每块大概16K大小. 在LPC2478的文档中,APB的各个设备的寄存器空间是按下面的方式分配的: 有过Arm或者其他单片机开发经验的人对这种地址分配应该不难理解,但对于初学者可能会有点晕.如果大家打算从LPC2478(ARM7TDMI-S的2400系列)开始学起的话,有两个文档是要用来经常查阅的: lpc2478_ds.p
[单片机]
快速学<font color='red'>Arm</font>(12)--APB,AHB地址与接口的关系
ARM+DSP的嵌入式四轴运动控制器设计
运动控制系统已被广泛应用于工业控制领域。近年来,工业控制对运动控制系统的要求越来越高。传统的基于PC及低端微控制器日渐暴露出高成本、高消耗、低可靠等问题,已经不能满足现代制造的要求 。随着嵌入式技术的日益成熟,嵌人式运动控制器已经初露锋芒。基于ARM技术的微处理器具有体积小、低成本、低功耗的特点,决定其在运动控制领域具有良好的发展前景。 PCL6045BL是一种新型专用DSP运动控制芯片,它具有强大的数据处理能力和较高的运行速度,可以实现高精度的多轴伺服控制。为解决精密制造对低成本、可移植性强的通用型多轴数控系统的迫切需求,文中给出一种基于ARM 微处理器S3C2440与DSP专业运动控制芯片PCL6045BL构成的嵌入式四轴运
[嵌入式]
IC集成的困惑:如何把握增减的尺度?
IC就是集成电路的缩写,它的出现,就是要将更多的电路进行集成。不过,随着半导体工艺的演进到65nm、45nm甚至更小节点,在集成更多不同功能的时候,如何把握集成的尺度也是颇为讲究的,集成更多功能并非是唯一的选择,相反,适当的分立策略,反而有助于芯片的推广和应用。 “在工艺尺寸进入到纳米级以前,集成不同功能追求的是越多越好,但是进入纳米级以后,集成的各功能电路之间的干扰越来越多,还有一些ESD问题也越来越多,这是在考虑集成的时候要注意的地方。”上海贝岭股份有限公司高工颜重光指出,“在这个方面,应当学习学习联发科,它们经过大量的研究,了解到手机中一些电路是最核心的,这些电路虽然能集成,但是集成以后可能会有影响,所以它们的BB和RF就
[焦点新闻]
μCOS-II在ARM Cortex-M3处理器上的移植
0 引言 嵌入式系统已经广泛渗透到了人们工作、生活中的各个领域,嵌入式处理器已占分散处理器市场份额的94%,其中ARM的应用最为广泛。基于ARM内核的处理器以其诸多优异性能而成为各类产品中选用较多的处理器之一。 当系统越来越大,应用越来越多时,就出现了如何管理众多的硬件资源,以及如何满足系统的实时控制要求和如何提高系统软件开发效率等不可回避的问题。这时,使用嵌入式操作系统很有必要。操作系统的主要作用有:统一管理系统资源;为用户提供访问硬件的接口;调度多个应用程序和管理文件系统等。 1 概述 μC/OS-II是著名的、源码公开的实时内核,是专为嵌入式应用设计的,可用于各类8位、16位和32位处理器。μC/OS-II已经
[单片机]
μCOS-II在<font color='red'>ARM</font> Cortex-M3<font color='red'>处理器</font>上的移植
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved