S3C2440A的ARM工作模式以及寄存器种类

news2025/2/8 19:48:44

文章目录

  • 前言
  • 一、ARM的工作模式
  • 二、寄存器的种类(注意特殊寄存器的使用)
  • 总结


前言


本期和大家主要分享的是ARM工作模式以及寄存器种类,不同系列的ARM的工作模式以及寄存器的种类大同小异,所以针对于S3C2440A,一定得通过这一种ARM能够去分析其他的ARM架构,这就要求我们对S3C2440A认真剖析并且进行原理上的理解而不是一味的背诵记忆,包括对特殊寄存器的理解;那么接下来看一下它的工作模式和寄存器的种类吧!

一、ARM的工作模式

ARM的工作模式 = 用户模式+特权模式;特权模式这里又被分为五种模式;
(1)usr用户模式:应用程序运行的模式(大多数的模式状态)
(2)sys系统模式(特权模式):和usr模式使用相同一组寄存器的特权模式
异常模式
(1)svc 管理模式:cpu上电复位后的模式,软件中断后cpu的模式
(2)und 未定义 :出现不识别指令时,cpu的工作模式
(3)abort 中止:预取指令失败,数据加载失败cpu的工作模式
(4)irq中断 : irq中断cpu的工作模式
(5)fiq :快速中断fiq,中断cpu的工作模式(fiq的优先级一般高于irq)

二、寄存器的种类(注意特殊寄存器的使用)

ARM920T总共有37个寄存器,每个模式都有一组寄存器,寄存器通过名字区分

r0-r14:通用寄存器;

r13(sp):栈指针寄存器:当任务切换时,可以保存通用寄存器数据到sp指向的内存空间;

r14(lr):链接寄存器:函数跳转时,可以保存返回地址到lr寄存器;

r15(pc):程序计数器:
写操作: cpu跳转到写入的地址处执行代码,上电默认0;
读操作:读取的数据是当前正在执行指令的下下条指令地址 ;

功能寄存器: cpsr spsr
cpsr (程序状态寄存器):记录当前程序状态;
spsr(程序状态保存寄存器):保存cpsr;每一种模式下都有一个状态寄存器SPSR,用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态。
下图是2440中的寄存器:
在这里插入图片描述


总结

本期分享的内容ARM工作模式以及寄存器种类,并且本期分享内容较少的原因也是因为这块的知识是一段很重要并且可以拿出来单独理解记忆的东西,后续希望大家在记忆的基础上一定着重对于原理的理解;
最后,各位小伙伴们如果喜欢我的分享可以点赞收藏哦,你们的认可是我创作的动力,一起加油!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/640699.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【题目解析】第六届字节后端青训营结营小测试全解析

前言 👏 Hi! 我是 Yumuing,一个技术的敲钟人 👨‍💻 每天分享技术文章,永远做技术的朝拜者 📚 欢迎关注我的博客:Yumuing’s blog 由于官方答案没有出来,所以,这部分都是…

03.填充中断向量表IDT,使用中断

填充中断描述符表IDT,使用中断 通过初始化中断控制芯片,编码中断函数,实现BIOS中断 操作系统的中断是一种异步事件,用于通知 CPU 某个事件已经发生,例如硬件设备完成数据传输、发生错误或用户发起的系统调用。当操作系…

栈和队列(栈的应用)[二]

文章目录 栈的应用一、栈在系统中的应用简化路径(leetcode. 71) 二、扩号匹配问题有效的括号(leetcode. 20) 三、字符串去重删除字符串中的所有相邻重复项(leetcode. 1047) 四、逆波兰表达式问题逆波兰表达式求值(leetcode. 150) 总结 栈的应用 递归的实现是栈:每一…

使用腾讯手游助手作为开发测试模拟器的方案---以及部分问题的解决方案-1

目录 前言: 一.目录结构 二.注册表研究 1.HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Tencent\MobileGamePC 2.HKEY_CURRENT_USER\Software\Tencent\MobileGamePC 三.模拟器快捷启动 1.快捷启动命令: 2.启动命令如何放入桌面: 3.adb端口,目前测试均可以使用: 前言: 此…

PyTorch深度学习实战(3)——使用PyTorch构建神经网络

PyTorch深度学习实战(3)——使用PyTorch构建神经网络 0. 前言1. PyTorch 构建神经网络初体验1.1 使用 PyTorch 构建神经网络1.2 神经网络数据加载1.3 模型测试1.4 获取中间层的值 2. 使用 Sequential 类构建神经网络3. PyTorch 模型的保存和加载3.1 模型…

【框架源码】Spring源码解析之Bean生命周期流程

观看本文前,我们先思考一个问题,什么是Spring的bean的生命周期?这也是我们在面试的时候,面试官常问的一个问题。 在没有Spring之前,我们创建对象的时候,采用new的方式,当对象不在被使用的时候&…

【网络】UDP/TCP网络程序

目录 UDP网络程序 简单通信版本(UDP) 准备工作(接口学习、分析) 整体代码(Server.hpp/Server.cpp/Client.hpp/Client.cpp) 添加“婴儿版”业务逻辑 英译汉翻译 my_shell 聊天室 linux和windows通信 TCP网络程序 简单通…

AB32VG1:SDK_AB53XX_V061(3)IO口复用功能的补充资料

文章目录 1.IO口功能复用表格2.功能映射寄存器 FUNCTION03.功能映射寄存器 FUNCTION14.功能映射寄存器 FUNCTION2 AB5301A的官方数据手册很不完善,没有开放出来。我通过阅读源码补充了一些关于IO口功能复用寄存器的资料。 官方寄存器文档:《 AB32VG1_Re…

chatgpt赋能python:Python怎么截屏Windows

Python怎么截屏Windows Python是一种高级编程语言,具有快速开发、易于学习、可移植性强等优点,因此在实现Windows屏幕截图方面也是一种非常强大的工具。 什么是Windows屏幕截图? Windows屏幕截图是将当前屏幕或窗口的图像保存成文件或剪贴…

Android BlueToothBLE入门(二)——设备的连接和通讯(附Demo源码地址)

学更好的别人, 做更好的自己。 ——《微卡智享》 本文长度为7870字,预计阅读12分钟 前言 接《Android BlueToothBLE入门(一)——低功耗蓝牙介绍》上篇,这篇文章主要就是来做Demo实现Android两台设备的数据通讯。 实现效…

chatgpt赋能python:Python如何快速处理数据

Python如何快速处理数据 在当今数据爆炸的时代,数据处理已经成为一项非常重要的任务。因此,如何快速、高效地处理数据就成为了每个数据科学家、数据工程师以及数据分析师的必备技能之一。而Python正是其中的佼佼者。 为什么选择Python进行数据处理 Py…

Spring事物失效的八大场景

1.方法内的自调用:spring事物是基于aop的,只要使用代理对象调用某个方法时,spring事物才能生效,而在一个方法内使用this.xxx()时。this并不是代理对象,所以会失效(实际上是transaction注解失效)…

用程序控制对文本的复制和粘贴pyperclip模块

【小白从小学Python、C、Java】 【等级考试500强双证书考研】 【Python-数据分析】 用程序控制对文本的复制和粘贴 pyperclip模块 选择题 关于下列代码说法错误的是? import pyperclip print(【执行】pyperclip.copy("Python 太强大了!")) p…

读发布!设计与部署稳定的分布式系统(第2版)笔记01_生产环境的生存法则

1. 系统“应该”做什么 1.1. 添加所需特性 2. 系统“不应该”做什么 2.1. 崩溃 2.2. 停止响应 2.3. 丢失数据 2.4. 侵犯隐私 2.5. 损失金钱 2.6. 摧毁公司 2.7. “杀死”客户 3. QA部门的测试 3.1. 团队的大部分工作是想方设法地通过测试 3.2. 做了敏捷、务实和自动…

【设计模式与范式:行为型】57 | 观察者模式(下):如何实现一个异步非阻塞的EventBus框架?

上一节课中,我们学习了观察者模式的原理、实现、应用场景,重点介绍了不同应用场景下,几种不同的实现方式,包括:同步阻塞、异步非阻塞、进程内、进程间的实现方式。 同步阻塞是最经典的实现方式,主要是为了…

GreenPlum分布式集群部署实战

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

GC演变过程、三色标记法、大白话讲解G1

文章目录 GC演变过程并发垃圾回收需要解决的问题怎么确定一个垃圾?并发收集存在的问题 三色标记法CMS垃圾收集器G1垃圾收集器介绍,主要特点优点使用注意点 GC演变过程 在Java中,垃圾收集一直是一个非常重要的组成部分, 到目前为止,垃圾收集器已经有十种了, 在不停的优化. 那为…

GoogleTest之Actions的用法

目录 返回值Actions的组合验证复杂参数mock副作用改变mock对象的行为设置返回类型的默认值使用自定义函数作为Actions 通用示例 namespace mock_action { class Foo { public:virtual ~Foo() {}virtual int& GetBar() 0; // 1virtual int GetPointerValue() 0; //…

Linux CentOS7虚拟机配置静态IP并允许上网的配置方法

文章目录 前言一、开启本地电脑VMnet8二、Linux配置静态IP1. NAT模式设置2. 开启虚拟机登录root用户3. 执行命令设置静态IP4. 重启网卡① 重启网卡 (正常)② 重启网卡 (异常)③ 解决方式:禁用NetworkManager 5. 查看ip6. 本地电脑cmd窗口ping虚拟机7. 虚拟机ping本地…

Golang每日一练(leetDay0095) 第一个错误的版本、完全平方数

目录 278. 第一个错误的版本 First Bad Version 🌟 279. 完全平方数 Perfect Squares 🌟🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日…