历史上的今天
返回首页

历史上的今天

今天是:2024年10月13日(星期日)

正在发生

2021年10月13日 | S3C2440裸机------异常与中断__CPU的工作模式和状态以及寄存器

2021-10-13 来源:eefocus

1.CPU工作模式(Mode)

ARM CPU有七种模式,各种模式如下图所示。注意用户模式下不可进入其他模式,用户模式是在有操作系统的时候给应用程序使用的,写应用程序的人水平千差万别,不能保证写的程序是好是坏,所以让应用程序运行在用户模式,限制应用程序的权限,防止破坏整个系统,

2.状态(State)

 ARM架构的CPU有ARM state和Thumb state,


ARM State:用的是ARM指令集,每个指令占据4 byte,


Thumb State:用的是Thumb指令集,每个指令2 byte.


比如对于同样的一条指令,MOV R0,R1 对于ARM指令集就要占据四个字节,对于Thumb指令集占据两个字节,这里的占据几个字节是指这条汇编指令会编译成机器码之后占据几个字节。我们引入Thumb指令集是为了减少存储程序的空间,这对单片机特别有效,单片机的flash空间比较小,所以我们要减少程序存储的空间,但是在我们的嵌入式linux中,我们的norflash足够大,不需要节省空间,所以我们一直使用的是ARM指令集。


Thumb是ARM体系结构中一种16位的指令集。Thumb指令集可以看作是ARM指令压缩形式的子集,它是为减小代码量而提出,具有16bit的代码密度。Thumb指令体系并不完整,只支持通用功能,必要时仍需要使用ARM指令,如进入异常时。其指令的格式与使用方式与ARM指令集类似,而且使用并不频繁,Thumb指令集作一般了解。


3.寄存器

每种异常模式主要差别就在于寄存器的差别,

我们可以看到在所有的7种模式下我们都可以使用r0-r15.但是有些寄存器画有灰色三角形,这表明在该模式下面访问到这些寄存器的时候,访问到的是这个模式下专属的寄存器,比如在FIQ模式下,我们访问R8的时候,访问的是FIQ模式下它专属R8寄存器,这时候访问到的R8和用户模式下访问到的R8寄存器不是同一个物理寄存器,我们可以看到在后面的5种模式下,R13,R14都是专用寄存器,其中R13用作栈,R14用作LR返回地址,也就是每种异常模式下我们可以分别设置它的栈,然后LR用来保存发生异常时的指令地址。

下面我们看一下程序状态寄存器,CPSR当前程序状态寄存器,SPSR(saved)保存的程序状态寄存器,用来保存被中断模式的CPSR,低位的M4-M0表示当前CPU处于哪种模式,然后T表示CPU工作与ARM State还是Thumb state,F表示FIQ disable,当该位为1时,所有的FIQ是禁止的。bit28-31是状态位,比如当我们执行cmp R0,R1    beq xx.如果R0=R1,那么状态位的Zero位就是1,然后beq指令会来判断Zero位是否为1,为1则跳转。

我们来看一下异常的处理流程,上图是进入异常时的步骤,上图是硬件部分实现的,


发生异常时我们的CPU首先把被中断的下一条指令的地址保存到LR寄存器里面,有可能是PC+4,有可能是PC+8,到底是哪个值取决于不同的情况。


然后把CPSR保存到SPSR中

然后修改CPSR的模式位,让CPU进入某种异常模式,

然后跳到向量表,

然后看一下离开异常时要做什么

首先让LR寄存器减去某个offset,至于减去什么值看上面的表格,

然后把CPSR的值恢复。

然后是清除中断。

推荐阅读

史海拾趣

无锡友达公司的发展小趣事

面对电子行业的快速发展和智能化趋势,无锡友达积极响应,加快智能化转型和升级。公司不仅在产品设计和生产上引入智能化技术,还通过建立智能化管理系统,提升企业的运营效率和产品质量。此外,无锡友达还积极参与各类行业展会和交流活动,与业界同行共同探讨智能化转型的未来趋势。

CANOPUS公司的发展小趣事

随着电子技术的飞速发展,CANOPUS开始探索将传统鼓制作技艺与现代电子技术相结合。公司不断投入研发,推出了一系列具有创新性的电子鼓产品。这些产品不仅保留了传统鼓的音质和手感,还加入了现代电子元素,使得演奏更加多样化和便捷。

Allied Wire & Cable Inc公司的发展小趣事

Allied公司深知客户是公司发展的核心动力。因此,公司始终将客户服务放在首位,为客户提供全方位、个性化的服务支持。无论是产品咨询、技术支持还是售后服务,Allied公司都力求做到最好,赢得了客户的信任和好评。同时,公司还积极与合作伙伴建立长期稳定的合作关系,共同开拓市场,实现互利共赢。

Cygnal Integrated Products Inc公司的发展小趣事

在20世纪90年代末,Cygnal Integrated Products Inc由几位热衷于微控制器技术的工程师创立。他们看到了嵌入式系统在电子产品中的巨大潜力,并决定专注于开发高性能、低功耗的微控制器。通过不断的技术创新和市场调研,Cygnal成功推出了其首款产品——一款集成了多种外设接口的8位微控制器,受到了市场的热烈欢迎。

Cybernetic Micro Systems公司的发展小趣事

Cybernetic Micro Systems(简称CMS)的创始人李华,是一位热衷于电子技术的天才工程师。他在大学期间就研发出了一款高效能、低功耗的微处理器原型,这一成果引起了业界的广泛关注。毕业后,李华决定创业,将他的研究成果商业化。于是,Cybernetic Micro Systems应运而生,专注于研发和生产高性能的微处理器和配套设备。凭借独特的技术优势,CMS很快在电子行业中崭露头角。

EiKO Global LLC公司的发展小趣事

随着LED技术的不断成熟,EiKO敏锐地意识到这将为照明行业带来革命性的变革。于是,公司投入大量研发资源,开始研发LED照明产品。经过数年的努力,EiKO成功推出了一系列高效、节能、环保的LED照明产品,如LED灯具、LED改装和替换灯等。

这些LED照明产品不仅具有出色的性能和品质,还满足了不同用户的需求。例如,EiKO的LED灯具适用于室内和室外各种场所,包括高棚、超薄面板、暗灯槽等;而LED改装和替换灯则为用户提供了多种瓦数、形状和色温的选择,满足不同场景下的照明需求。

问答坊 | AI 解惑

鉴别真代理、假代理的方法

看它的业务介绍,如果说同时代理几家相互竞争的产品的,肯定是假的。 如网上说什么代理EMC,SONIX,十速等等的,100%是假的。…

查看全部问答>

arm开发板的调试串口能改变吗?

rt 2410的串口0是完备串口,我们想用它做别的用途 但是它默认是超级终端的调试串口, 我能不能通过修改bootloader来改变它,就是把串口0释放出来,使用串口1作为超级终端的调试串口啊? 多谢…

查看全部问答>

能具体讲下虚拟串口实现的过程不?

看了一个多星期的驱动程序开发 然后从网上下了不少资料,看了不少 现在对虚拟串口大概有个了解 但也不是很清楚,希望做过的能给个思路!~~ 注册表和驱动程序之间的联系... 是通过添加注册表实现虚拟串口,还是直接 通过驱动程序虚拟一个串口使用?…

查看全部问答>

DATA FLASH的读写程序找人开发

一个DATA FLASH的读写程序找人开发,就是通过COM口吧数据写到板子的闪存(DATAFLASH)上,,要有开发经验 详情:http://www.xinet.com.cn/123/index.html 联系13870920010张先生,QQ:123013020…

查看全部问答>

串口下载问题

我用的IAR5.4编译,j-link仿真器下载没有问题. 但用串口下载芯片能联上,万利那个说下载返回码错误,ST那个下载也不行,但我用同事另外的产品HEX文件能下载,不知是什么问题?…

查看全部问答>

ATmega169V驱动段码LCD液晶片的困惑

ATmega169V驱动段码液晶片,电压5V,取1/3Bias,60Hz, 在静态有部分显示,1/2duty、1/3duty、1/4duty都没有显示,可能是什么原因? 初始化如下: LCDCRB=0x30; LCDFRR=0x66; LCDCCR=0x0F; 。。。。。 LCDCRA=0x80;…

查看全部问答>

【求助】高频预加重电路分析

如图,求高手帮分析一下箭头所指的右边电路的工作方式,电容C2是高频信号的正向通路还是反馈网络的一部分?如果是反馈网络,那C2的作用是什么呢? R1,C1是滤波器是肯定的。…

查看全部问答>

哪位提供一下LPC810下载电路?

我已经拿到LPC810的板子了 可是在下载程序的时候遇到了一些问题; 我用的是一个232的ISP下载串口板; 软件用的是Flash Magic 读取芯片ID正常; 擦除Flash正常; 但是不能往里写入程序; 总是卡在这里,不能往下进行; 有哪个大虾遇到过这 ...…

查看全部问答>

请问ccs v5如何安装MSP-FET430UIF驱动?

得到一个写着MSP-FET430UIF的烧写器,连接到电脑显示驱动安装好了。但是我的ccs中device connection中没有显示这个,只有USB。请问如何安装使用?…

查看全部问答>

关于GPS和GSM模块的定位。

我想问下论坛的大神,我现在在把GPS的经纬度可以定位发送到GSM模块中,在手机显示是经纬度。。我想的是,可以显示当前的所在地址或者是地图的连接。。打算用GSM模块的GPRS,但感觉好像不行,因为还是要电脑操作。。请问大神们,怎么可以发送信息的 ...…

查看全部问答>