ARM cortex 内核编程模式

ARM cortexM4 内核的编程模式,处理器模式和软件执行的特权级别简介

处理器模式

处理器模式包含:

线程模式:常用来执行应用软件,处理器复位后,进入线程模式执行应用软件。

管理模式:常用来处理异常,当处理器处理完异常后,会返回线程模式。

软件执行的特权级别分为:

非特权模式:顾名思义,在这种模式下,权限是有限的,软件只有有限的权利对MSR和MRS指令,并且不能使用CPS指令,不能使用系统定时器,内嵌中断控制器,系统控制块,对内存和外设的访问有权限限制。

特权模式:顾名思义,特权模式,就是软件有所有的权限,可以使用所有的指令和访问所有的资源。

在线程模式下,控制寄存器控制软件执行时特权模式还是非特权模式,在管理模式下,软件总是具有特权权限,权限比较大。只有特权软件在线程模式下才能改写控制寄存器来改变软件执行的特权级别。

内核寄存器

cortex M4内核寄存器主要有:

R0~R12 通用寄存器,32位的为数据操作的通用寄存器。

MSP,PSP,main堆栈指针,处理器堆栈指针,R13

LR,链接寄存器, R14

PC,程序计数器, R15

PSR,程序状态寄存器

ASPR,应用程序状态寄存器

IPSR,中断程序状态寄存器

EPSR,执行程序状态寄存器

PRIMASK,优先级屏蔽掩码寄存器

FAULTMASK,错误屏蔽掩码寄存器

BASEPRI,基本优先级屏蔽掩码寄存器

CONTROL, 控制寄存器

具体的寄存器操作以及使用请参照ARM官方文档,部分寄存器我们在前面的ARM相关课程里已经讲过了,这里不赘述,如果记不住也没关系,在具体项目应用时候在参照官方文档,但了解这些内核知识还是很必要的,尤其是要做驱动开发时候和理解汇编语言时候。

嵌入式

程序猿

微信号:InterruptISR

原文发布于微信公众号 - 嵌入式程序猿(InterruptISR)

原文发表时间:2015-07-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏决胜机器学习

RabbitMQ(三) ——发布订阅

RabbitMQ(三)——发布订阅 (原创内容,转载请注明来源,谢谢) 一、概述 RabbitMQ的发布订阅(Publish/Subscribe)...

2575
来自专栏纯洁的微笑

当CPU飙高时,它在做什么

812
来自专栏iOS 开发杂谈

浅谈如何在项目中处理页面中的多个网络请求

在开发中很多时候会有这样的场景,同一个界面有多个请求,而且要在这几个请求都成功返回的时候再去进行下一操作,对于这种场景,如何来设计请求操作呢?今天我们就来讨论一...

682
来自专栏蓝天

madvise、fadvise、posix_madvise和posix_fadvise函数的使用

m表示memory,f表示file,因此madvise是针对内存,而fadvise是针对文件。

691
来自专栏散尽浮华

linux下的缓存机制及清理buffer/cache/swap的方法梳理

1)缓存机制介绍 在Linux系统中,为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件,当内核收到读写的请求时,内核先去缓存...

2078
来自专栏Android学习之路

Android 文件下载

1667
来自专栏me的随笔

.NET中的各种池

在.NET中,常用到的池有四个:字符串拘留池、线程池 、应用程序池、数据库连接池。

574
来自专栏开发与安全

linux系统编程之文件与I/O(五):文件的内核结构file和dup实现重定向

一、打开文件内核数据结构 1、一个进程打开两个文件 ? 文件状态标志:读、写、追加、同步、非阻塞等 2、一个进程两次打开同一文件 ? 3、两个进程打开同一文...

1919
来自专栏CSDN技术头条

资源控制在大数据和云计算平台中的应用

本文针对大数据平台中资源控制这个层面来详细介绍资源控制在不同操作系统上的具体技术实现,以及大数据平台和资源控制的集成。

5388
来自专栏Golang语言社区

几种服务器端IO模型的简单介绍及实现(上)

一些概念: 同步和异步 同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发I/O操作并等待或者轮询的去查看I/O操作是否就绪,而异步是指用户进程...

3238

扫描关注云+社区