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 条评论
登录 后参与评论

相关文章

来自专栏从零开始学自动化测试

pytest文档16-标记失败xfail

当用例a失败的时候,如果用例b和用例c都是依赖于第一个用例的结果,那可以直接跳过用例b和c的测试,直接给他标记失败xfail 用到的场景,登录是第一个用例,登录...

983
来自专栏漫漫全栈路

ASP.NET MVC HtmlHelper类

ASP.NET MVC之 HtmlHelper 在ASP.NET MVC项目的开发中,一般会默认使用Razor视图来进行View层的编写,从而实现高效率的C#/...

2823
来自专栏技术小讲堂

ASP.NET AJAX(3)__UpdatePanel

今天也不知道写不写的完了,最近闲下来了,却感冒了,早上起来都不会说话了,不过幸亏咱不是靠嘴皮子过活了,哎~~~~窃喜吧 上一篇简单写到UpdatePanel的一...

3105
来自专栏云霄雨霁

Mybatis--全局配置文件笔记

940
来自专栏Puppeteer学习

Puppeteer实现选择性截图

截图的代码很简单,比如如果我想实现对百度搜索框部分截图怎么做呢,查询page.screenshot api 可以看到其api说明中包含clip 选项,用于设置截...

7548
来自专栏程序员互动联盟

【答疑释惑第十二讲】什么是函数库?

疑惑一 java中如何引入第三方jar包? 方法一、使用Bootstrap Classloader来加载这些类 我们可以在运行时使用如下参数: -Xbootcl...

3308
来自专栏大前端_Web

从前端模块化的概念来理解Webpack

版权声明:本文为吴孔云博客原创文章,转载请注明出处并带上链接,谢谢。 https://blog.csdn.net/wkyseo/articl...

923
来自专栏贾鹏辉的技术专栏@CrazyCodeBoy

React Native之React速学教程(上)

React Native之React速学教程(上) 本文出自《React Native学习笔记》系列文章。 React Native是基于React的,在开发R...

2718
来自专栏Golang语言社区

Go 语言系统调用简析

一、系统调用概述 系统调用是受控的内核入口,借助于这一机制,进程可以请求内核以自己的名义去执行某些动作。Linux 内核以 C 语言语法 API 接口形式(头文...

3838
来自专栏前端萌媛的成长之路

JavaScript模块化发展

2043

扫码关注云+社区