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

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

3天内不再提示

强大的Arm® Cortex®-M3内核(下)

东芝半导体 来源:东芝半导体 2024-01-25 09:25 次阅读

经过前一期的芝识课堂,我们了解了东芝MCU产品所基于Arm Cortex-M3内核的基本结构和寄存器分配的细节。大家一定迫不及待地想知道Arm Cortex-M3内核的操作模式又有哪些技巧吧?今天芝子就带大家详细学习一下吧!

Arm Cortex-M3有两个特权(特权/非特权)和两种操作模式(线程/处理者)。对于嵌入式使用,可以选择只有特权级别的基本配置或在特权和非特权之间切换的配置。在特权/非特权级别下,通过在分配给寄存器R13的主栈指针(MSP)与进程栈指针(PSP)之间切换,堆栈区域可由操作系统内核以及用户例程等处理功能分离和管理。

如果发生异常/中断的程序,控制寄存器的状态以及堆栈指针的切换情况是怎么样的呢?如图1所示,当发生异常/中断时,使用中的堆栈会随控制寄存器CONTROL的状态而改变。以显示主栈指针(MSP)和进程栈指针(PSP)之间的切换状态。

ecdcfa48-bb15-11ee-8b88-92fbcf53809c.png

图1 发生异常/中断的程序时控制寄存器的状态

以及堆栈指针的切换

Arm Cortex-M3内核的所有异常都在特权模式下运行,且具有中断特权并支持嵌套中断,所有异常都集成在NVIC寄存器中。值得注意的是,因每个设备而异,部分设备中断过程支持外部中断。异常可通过复位、中断、故障和系统调用执行。异常类型和特权级别如图2所示。

ece98a74-bb15-11ee-8b88-92fbcf53809c.png

图2 异常类型和特权级别

对于集成异常的NVIC控制寄存器,当发生异常和中断操作时,它作为从主内核到存储器的设备被访问,用于控制各中断使能的设置与清除、控制各中断请求的设置与清除(释放保留)以及控制中断的优先级。

下面我们再带大家了解NVIC块的基本功能之一——外部中断处理控制,将使能位和挂起位分配给每个外部中断信号,并配置控制寄存器。控制寄存器分为仅设置寄存器和仅清除寄存器。外部中断的产生通过优先级寄存器的信息来控制。该寄存器用于设置中断优先级以及使能位和挂起位的状态,如图3。Arm Cortex-M3通过NVIC控制实现高速入栈/出栈处理,此外,如果中断处理过程中同时发生中断请求或发生高优先级的中断请求,则入栈/出栈处理的寄存器自动保存将被忽略,从而改善处理时间。

ecf70938-bb15-11ee-8b88-92fbcf53809c.png

图3

介绍完异常和中断操作,我们再来看看Arm Cortex-M3规格的存储器映射。图4是Arm Cortex-M3规格的存储器映射示意图,可以清楚看到每个存储器对应的存储功能。图5则展示了这款MCU的存储器映射细节,从中可以看到相比于Arm Cortex-M3标准的规格,该芯片的部分存储器映射进行了深度优化。

ed0acfae-bb15-11ee-8b88-92fbcf53809c.png

图4

ed1d19de-bb15-11ee-8b88-92fbcf53809c.png

图5

CPU接收到外部中断/异常时,它会先查询向量表,以查找到相应的中断服务程序地址。向量表是指中断服务程序入口地址的偏移量与段基址,一个中断向量占据4字节空间。各种异常的处理者(处理例程)的起始地址是分别设置的。当异常或中断事件发生时,从地址开始获取异常处理者。各种异常的向量表如图6所示。

ed33df7a-bb15-11ee-8b88-92fbcf53809c.png

图6

此外,关于位带和位带别名区的详细信息如图7所示。存储器中的数据通过1位单元进行有效运算。1位单元通过将位带区的数据加载或存储到位带别名区来访问这些数据。

那么位带区数据和位带别名区的地址如何分配?位带别名区的地址以字为单位进行分配(1个字=32位):位带别名区的字地址bit0访问位带区的每个位;位带别名区的字地址的分配方式为,每个地址分配给位带区的每个位。

ed4c3cbe-bb15-11ee-8b88-92fbcf53809c.png

图7

今天的芝识课堂,我们深入探讨了Arm Cortex-M3内核的操作模式,并分析了存储器映射的具体细节。接下来我们会一起进入东芝MCU产品的外围电路部分,学习如何针对不同应用增加各种功能单元,从而助力低功耗高性能解决方案开发的,敬请期待!




审核编辑:刘清

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

    关注

    38

    文章

    7150

    浏览量

    161998
  • Cortex-M3
    +关注

    关注

    9

    文章

    268

    浏览量

    59164
  • NVIC
    +关注

    关注

    0

    文章

    35

    浏览量

    11518
  • 外部中断
    +关注

    关注

    1

    文章

    131

    浏览量

    15597
  • 控制寄存器
    +关注

    关注

    0

    文章

    34

    浏览量

    11432

原文标题:芝识课堂——强大的Arm® Cortex®-M3内核(下)

文章出处:【微信号:toshiba_semicon,微信公众号:东芝半导体】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Silicon Labs EFM32 Gecko 32位微控制器简介

    基于强大ARM® Cortex®-M3 内核,Gecko 系列采用创新低能耗技术,节能模式唤醒时间缩短,可搭配各种外围设备,是电池驱动应
    发表于 01-14 15:24 6994次阅读

    富士通基于ARM Cortex M3的产品和技术

    本帖最后由 qzq378271387 于 2012-7-31 21:34 编辑 富士通:基于ARM Cortex M3的产品和技术介绍
    发表于 07-31 21:32

    请问我要学习arm lm3S9B96(cortex m3内核)通过学习stm32来入门...

    请问我要学习arm lm3S9B96(cortex m3内核)通过学习stm32来入门帮助大不大?二者编程差别大不大?求解释?
    发表于 01-08 19:25

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

    其中讲解了使用GNU工具链与ARM工具的基本方法与步骤。主要内容包括:ARM架构的背景、Cortex?M3入门、操作模式、异常与中断、汇编语言基础、存储器系统、
    发表于 03-13 10:40

    cortex M3的蓝牙驱动

    cortex M3 怎么通过蓝牙传输数据啊?有没有在cortex M3上用的驱动啊?
    发表于 09-09 09:38

    灵动微电子获得ARM® Cortex® -M0及Cortex® -M3无限次授权

    次使用ARM® Cortex®-M0及Cortex®-M3 CPU内核及IP工具包。基于该协议,
    发表于 10-18 14:20

    Cortex M3内核概述

    第二讲 ARM架构一 、Cortex M3内核概述Cortex M3 Vendor-
    发表于 07-26 08:21

    ARM Cortex-M3内核介绍

    STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核(ST's product portfolio contains a comprehensive
    发表于 08-05 06:15

    Cortex™-M3处理器

    2.1STM32F103xx增强型LQFP48引脚分布2.2 STM32F103xx概述2.2.1ARM®的Cortex™-M3核心并内嵌闪存和SRAMARM的Cortex™-
    发表于 08-11 07:03

    ARM®的Cortex®M3微控制器有何特点

    灵动微MM32F3277G8P使用高性能的ARM®Cortex®M3内核的32位单片机,ARM®的Co
    发表于 09-06 09:19

    ARM Cortex M3处理器的总线接口

    系列索引:《嵌入式系统原理与应用》 | 嵌入式系统 重点知识梳理目录ARM Cortex M3 处理器Cortex M3的总线接口
    发表于 12-14 06:41

    CortexM3内核的知识点汇总,绝对实用

    CortexM3内核的知识点汇总,绝对实用
    发表于 01-26 06:30

    ARM cortex M3规格中的总线矩阵是什么

    确切的说,总线矩阵是什么?我在ARM cortex M3规格中遇到过该术语,但找不到任何适当的描述。有人可以帮忙吗?
    发表于 08-30 15:23

    Cortex内核的比较(M3和M4)

    **Cortex内核的比较(M3和M4)** 一、开发板资源描述    
    发表于 12-01 13:06 20次下载
    <b class='flag-5'>Cortex</b><b class='flag-5'>内核</b>的比较(<b class='flag-5'>M3</b>和M4)

    芝识课堂【TX03微控制器】—强大Arm® Cortex®-M3内核(上)

    单元,要应用好TX03系列MCU必须要先了解该系列所基于的Arm Cortex -M3内核。本期内容开始,芝子将向大家介绍Arm
    的头像 发表于 11-28 17:45 334次阅读
    芝识课堂【TX03微控制器】—<b class='flag-5'>强大</b>的<b class='flag-5'>Arm</b>® <b class='flag-5'>Cortex</b>®-<b class='flag-5'>M3</b><b class='flag-5'>内核</b>(上)