0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Cortex-M3寄存器的详细资料汇总

GReq_mcu168 来源:博客园 作者:博客园 2020-09-14 11:51 次阅读

1.寄存器

CM3拥有R0~R15通用寄存器和一些特殊功能寄存器

R0~R12这些通用寄存器,复位初始值都是不可预料的

2.CM3有R0到R15的通用寄存器组

注:绝大部分的16位thumb只能访问R0到R7,而32位thumb-2可以访问全部寄存器

3.特殊功能寄存器

3.1程序状态寄存器组(应用程序PSR+中断号PSR+执行PSR)

3.2中断屏蔽寄存器组:用于控制异常的除能和使能

3.3控制寄存器:用于定义特权级别和当前使用哪个堆栈指针

4.操作模式和特权级别:

两种操作模式(处理器模式):Handler模式和线程模式(用于区分异常服务例程的代码和普通程序的代码)

两种特权等级:特权级和用户级(是指在硬件层面上对存储器访问权限的设置)

注:CM3在运行主程序(即线程模式)可以使用特权级别和用户级别;但是异常服务例程(即handler模式)只能使用特权级别。当处于线程+用户模式时一些访问权限将被禁止

将代码区分成用户级和特权级,有利于程序架构的稳定,如某一个用户代码出问题,不会使其成为害群之狗,因为用户级别的代码是禁止对一些要害寄存器操作的。

5.异常处理

5.1CONTROL[0]=0;

5.2CONTROL[0]=1;

CONTROL[0]只有在特权级别下可以访问,若在用户级别想访问先通过"系统服务呼叫指令(SVC)"来触发SVC异常,然后在该异常的服务例程中可以修改CONTROL[0]。

6.下面是各操作模式的转换

7.异常和中断

可以有11个系统异常和最多240个外部中断(IRQ),具体芯片使用了多少要看芯片制造厂商

作为中断功能的强化,NVIC 还有一条NMI输入信号线,具体做什么由芯片制造商决定,NMI(not masked interrupted)

8.向量表:当一个异常被CM3内核接受。对应的异常Handler就会执行,向量表用来决定Handler的入口地址。

9.CM3的双堆栈:主堆栈(MSP)和进程堆栈(PSP)。是由CONTROL[1]控制的。

10.复位序列:

先从0X00地址取出MSP的值再从0x04地址取出PC的初始值,0X04处存的值是复位向量,而不是跳转指令。

此处CM3与ARM单片机不同。以前ARM都是从0X00地址开始执行第一条指令,一般第一条指令都是跳转指令

11.MSP及PC初始化的一个例程

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5032

    浏览量

    117741
  • Cortex-M3
    +关注

    关注

    9

    文章

    268

    浏览量

    59165

原文标题:Cortex-M3寄存器等基础知识

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    求助,关于cortex-M3的压栈问题求解

    我们都知道cortex-m3中断时是硬件自动压栈的,这样可以减少中断响应和恢复时间。中断硬件压栈的寄存器为xPSR, PC, LR, R12, R0-R3,为什么其他寄存器不需要压栈呢
    发表于 04-28 08:18

    cortex-m3中如何将AHB-AP 数据读/写寄存器中的内容写入RAM中?

    如题,我想自己编写程序,通过JTAG口将bin文件写入cortex-m3的RAM中,查看了下《cortex-m3技术参考手册》,里面提到可以通过AHB-AP寄存器对内部RAM进行读写。在AHB-AP
    发表于 04-26 14:15

    【图书分享】《ARM Cortex-M3权威指南》

    指令小结附录B 16位Thumb指令及架构版本附录C Cortex?M3异常快速参考附录D NVIC寄存器小结附录E Cortex-M3疑难解答附件:
    发表于 03-13 10:40

    ARM Cortex-M3权威指南

    资料分享ARM Cortex-M3权威指南
    发表于 11-06 11:13

    新手求tmsf28035寄存器详细资料

    寄存器详细资料,能精确到每一位是干什么的,谢谢!
    发表于 11-08 11:41

    Cortex-M3简述

    Cortex-M3Cortex-M3简述Cortex-M3是ARM公司设计的ARMv7架构下Cortex系列的首秀,其目的是为了让32位处理加入单片机市场,
    发表于 11-10 08:19

    ARM Cortex-M3系统该如何去设计呢

    STM32 MCU系统时钟树 1.4 Cortex-M3简介2. 通用并行GPIO口 2.1 GPIO结构及寄存器说明 2.2 GPIO设计实例...
    发表于 11-10 07:50

    Cortex-M3处理拥有哪些通用寄存器及特殊功能寄存器

    Cortex-M3处理拥有哪些通用寄存器及特殊功能寄存器呢?分别有哪些呢?
    发表于 11-25 09:23

    ARM Cortex-M3 DesignStart™ Eval RTL和FPGA快速入门指南

    不支持更改处理配置。 当用户修改Cortex-M3 DesignStart评估系统时,模糊后的RTL用于构建一个FPGA映像。 混淆后的RTL仅暴露一组有限的内部寄存器用于调试目的。 出于模拟和调试目的,建议使用处理
    发表于 08-12 07:38

    MIPS的32个通用寄存器的名称和用途详细资料概述

    本文档的主要内容详细介绍的是MIPS的32个通用寄存器的名称和用途详细资料概述免费下载。
    发表于 10-12 16:44 24次下载
    MIPS的32个通用<b class='flag-5'>寄存器</b>的名称和用途<b class='flag-5'>详细资料</b>概述

    寄存器的名称和地址的映射详细资料分析

    本文档的主要内容详细介绍的是寄存器的名称和地址的映射详细资料分析。首先要清楚的一点,所有操作,最终目的都是操作寄存器一,对比51单片机和STM32对
    发表于 07-01 17:42 1次下载
    <b class='flag-5'>寄存器</b>的名称和地址的映射<b class='flag-5'>详细资料</b>分析

    DSP28335 ACD寄存器详细资料说明

    本文档的主要内容详细介绍的是DSP28335 ACD寄存器详细资料说明。
    发表于 05-27 13:43 4次下载
    DSP28335 ACD<b class='flag-5'>寄存器</b>的<b class='flag-5'>详细资料</b>说明

    Cortex-M3寄存器资料下载

    电子发烧友网为你提供Cortex-M3寄存器资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文
    发表于 04-13 08:47 2次下载
    <b class='flag-5'>Cortex-M3</b><b class='flag-5'>寄存器</b>组<b class='flag-5'>资料</b>下载

    Cortex-M3 内部寄存器

    寄存器组R0-R12R0-R12,通用寄存器;R0-R12都是32位通用寄存器,用于数据操作;但是绝大多数16位Thumb指令只能访问R0-R7,而32位Thumb指令可以访问所有寄存器
    发表于 11-26 16:21 39次下载
    <b class='flag-5'>Cortex-M3</b> 内部<b class='flag-5'>寄存器</b>

    Cortex-M3寄存器等基础知识

    Cortex-M3拥有R0~R15通用寄存器和一些特殊功能寄存器。R0~R12这些通用寄存器,复位初始值都是不可预料的。
    发表于 02-08 16:28 2次下载
    <b class='flag-5'>Cortex-M3</b><b class='flag-5'>寄存器</b>等基础知识