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

    文章

    7484

    浏览量

    163759
  • Cortex-M3
    +关注

    关注

    9

    文章

    269

    浏览量

    59463
  • NVIC
    +关注

    关注

    0

    文章

    35

    浏览量

    11695
  • 外部中断
    +关注

    关注

    1

    文章

    131

    浏览量

    15816
  • 控制寄存器
    +关注

    关注

    0

    文章

    34

    浏览量

    11484

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

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

收藏 人收藏

    评论

    相关推荐

    Cortex M3内核概述

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

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

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

    针对ARM Cortex M3平台的代码移植

    针对ARM Cortex M3平台的代码移植:ARM CortexTM-M3是一款高性能、低成本、低功耗的32位RISC处理器。它仅执行16
    发表于 01-16 15:34 78次下载

    ARM_Cortex-M3快速入门

    ARM Cortex-m3快速入门,适合m3入门,对其他ARM芯片学习也有帮助。
    发表于 05-16 14:31 13次下载

    特大好消息:ARM Cortex-M0/M3免收授权费了

    【导读】51单片机内核历史使命即将完结,因为ARM已经宣布,自2017年6月20日起,Cortex-M0/M3处理器内核免收授权费用,版权费
    发表于 06-23 18:46 3679次阅读

    Cortex M3 实验教程

    Cortex M3 实验教程
    发表于 10-24 15:04 14次下载
    <b class='flag-5'>Cortex</b> <b class='flag-5'>M3</b> 实验教程<b class='flag-5'>下</b>

    如何定制基于Cortex-M0/M3免费内核的自主SoC

    创易栈将联合Arm中文社区、电子发烧友举办“如何定制基于Cortex-M0/M3 免费内核的自主SoC”线下沙龙+在线直播活动,议程如下
    发表于 11-21 14:55 18次阅读

    如何定制基于Cortex-M0/M3免费内核的自主SoC | 直播报名(11.25)

    活动主题 如何定制基于Cortex-M0/M3免费内核的自主SoC M0/M3免授权费+第三方设计服务=自主SoC
    的头像 发表于 11-21 15:14 1.4w次阅读

    ME32x系列是内嵌ARM Cortex M0/M3核的32位微控制器

    概述ME32x系列是内嵌ARM Cortex M0/M3核的32位微控制器。
    的头像 发表于 03-31 15:14 2617次阅读

    Cortex内核的比较(M3M4)

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

    CortexM3的架构指南

    本书要给CortexM3的架构做一个简介,浏览一指令系统,写几个段代码练 练手,说一些硬件特性,再表一表该处理器精深的调试系统。本书还给出了应用 程序范例,手把手地教你使用开发工具,包括
    发表于 04-13 14:23 2次下载

    Cortex M3权威指南

    本书要给CortexM3的架构做一个简介,浏览一指令系统,写几个段代码练练手,说一些硬件特性,再表一表该处理器精深的调试系统。本书还给出了应用程序范例,手把手地教你使用开发工具,包括ARM
    发表于 09-28 10:29 42次下载

    使用FreeRTOS TM实时内核ARM Cortex M3

    小型嵌入式系统多任务处理简介包含ARM Cortex-M3内核的微控制器(MCU)可从许多制造商处获得,非常适合于嵌入式实时应用程序。通常,这种类型的应用程序包括硬实时和软实时需求的混合。
    发表于 09-28 16:09 0次下载

    深入 CortexM3 的 Faults异常

    深入 CortexM3 的 Faults异常
    的头像 发表于 10-26 16:57 621次阅读
    深入 <b class='flag-5'>Cortex</b>‐<b class='flag-5'>M3</b> 的 Faults异常

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

    单元,要应用好TX03系列MCU必须要先了解该系列所基于的Arm Cortex -M3内核。本期内容开始,芝子将向大家介绍Arm
    的头像 发表于 11-28 17:45 1190次阅读
    芝识课堂【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>(上)