咬尾linux中断机制制 晚到linux中断机制制 什么意思

 上传我的文档
 下载
 收藏
道客巴巴文档,豆丁文档,在线文档,共享文档,资料,文件,模板,论文,考试,试题,调查,报告,期刋,杂志,律师,公务员,建造师,会计师,毕业,设计,宗教,音乐,艺术,职称,等等,内容广精,欢迎下载,打印,分享或收藏
 下载此文档
正在努力加载中...
破坏STM32中断机制引发的异常
下载积分:800
内容提示:破坏STM32中断机制引发的异常
文档格式:PDF|
浏览次数:6|
上传日期: 13:21:21|
文档星级:
该用户还上传了这些文档
破坏STM32中断机制引发的异常
官方公共微信21ic官方微信-->
后使用快捷导航没有帐号?
查看: 532|回复: 5
从零入手Kinetis系统开发之中断使用方法
&&已结帖(0)
主题帖子积分
助理工程师, 积分 1263, 距离下一级还需 737 积分
助理工程师, 积分 1263, 距离下一级还需 737 积分
主题帖子积分
专家等级:结帖率:0%打赏:0.00受赏:0.20
主题帖子积分
助理工程师, 积分 1263, 距离下一级还需 737 积分
助理工程师, 积分 1263, 距离下一级还需 737 积分
对于掌握一款单片机(Coretex-M系列定位就是高端单片机,呵呵,和Cortex-A系列的应用处理器定位是两个档次)来说,其中断机制是必须要掌握的,所以作为一个单片机开发者,编写相应的中断服务程序是最基本的要求之一了。前面提到过,本来在第八篇系列就该写写中断的使用方法了(其实这都算晚了,呵呵),不过那会儿玩TSI玩的正在热头上就趁热打铁的写了TSI模块,以致于拖到现在才开始写中断,哈哈,所以不多说废话了,直接进入正题。
& & Kinetis的中断机制其实也即是Cortex-M4核的机制,ARM从Cortex-M3核系列(ARMv7-M架构)开始就引入了嵌套向量中断控制器(NVIC)来管理其中断功能,其主要的特点包括:
(1)可嵌套中断支持,这点不用细说了,几乎大多数内核都支持中断嵌套,不过可能嵌套的级数有些不同;
(2)向量中断支持,Cortex-M系列通过查询中断向量表找到相应的ISR(中断服务程序)入口,并跳转执行;
(3)动态优先级调整,即支持软件运行时改变中断优先级,其实飞思卡尔的HCS12也支持这个,嘿嘿;
(4)中断延迟大大缩短,引入了一些新特性,例如咬尾中断,晚到中断;
(5)中断可屏蔽,支持条件性屏蔽即只屏蔽优先级低于某个阈值的中断,当然也可以屏蔽全部中断了;
主题帖子积分
助理工程师, 积分 1263, 距离下一级还需 737 积分
助理工程师, 积分 1263, 距离下一级还需 737 积分
主题帖子积分
专家等级:结帖率:0%打赏:0.00受赏:0.20
主题帖子积分
助理工程师, 积分 1263, 距离下一级还需 737 积分
助理工程师, 积分 1263, 距离下一级还需 737 积分
Cortex-M核的NVIC最多支持200多个中断(包括系统异常16个和外部中断240个),只不过各大半导体厂商根据自家芯片的资源做了定制。其中前16个中断为系统中断(即核自己的,咱管不着,不过一些场合用的到),咱们主要关心的是IRQ中断(即外部中断,含外设资源),本系列既然主打Kinetis,就以其为例,重点介绍其特点和使用流程,刚刚是补补常识,下面才进入到本篇主角,哈哈:
1.首先介绍飞思卡尔Kinetis系列中断特点:
(1)低中断延迟,从中断发生到进入中断服务程序最多12时钟周期;
(2)最多120个中断,包含16个核中断和剩余的外部IRQ中断;
(3)最多16个可编程优先级;
(4)动态改变优先级;
(5)可重定位向量表,通过写SCB_VTOR寄存器。
主题帖子积分
助理工程师, 积分 1263, 距离下一级还需 737 积分
助理工程师, 积分 1263, 距离下一级还需 737 积分
主题帖子积分
专家等级:结帖率:0%打赏:0.00受赏:0.20
主题帖子积分
助理工程师, 积分 1263, 距离下一级还需 737 积分
助理工程师, 积分 1263, 距离下一级还需 737 积分
2.按部就班,老套路了,介绍完特点之后,下面细说说要写完整的中断服务程序的流程步骤,擦亮眼睛啦,呵呵,先上个图:
(1)使能外设的中断功能,也就是说打开外设的中断使能位(如果外设支持中断的话),使之与NVIC的中断输入连接;
(2)清除已经挂号发生的中断(避免刚打开即进入,可能造成一些不必要的影响),写NVICICPRx寄存器;
(3)使能相应IRQ中断号在NVIC的中断功能,写NVICISERx寄存器;
(4)配置中断优先级(可选,不设置的话默认,即按照在中断向量表的排序来决定),写NVICIPx;
(5)写相应的中断服务程序(ISR);
(6)使能全局中断EnableInterrupts,其实在启动代码部分已经开启,不过为了稳妥还是再使能一次。
哦了,按照上面6步即可完成相应资源中断功能的实现,so easy吧,呵呵,下面就根据实例来看下具体在程序里是如何实现的吧:
主题帖子积分
助理工程师, 积分 1263, 距离下一级还需 737 积分
助理工程师, 积分 1263, 距离下一级还需 737 积分
主题帖子积分
专家等级:结帖率:0%打赏:0.00受赏:0.20
主题帖子积分
助理工程师, 积分 1263, 距离下一级还需 737 积分
助理工程师, 积分 1263, 距离下一级还需 737 积分
3.该步通过拿出来我以前分享的IAR框架代码来分析下,具体如何实现中断服务机制的,以上篇系列的TSI中断为例,贴代码:
(1)使能相应外设的中断:
& & ENABLE_EOR_INT; /* 使能TSI越界中断 */
(2)根据TSI的IRQ中断号,清除已经发生的TSI中断事件,并且使能TSI中断功能,首先在K60的datasheet或者直接到其头文件开始处即可找到中断向量表,查到TSI的IRQ中断号(但是要注意IRQ号=中断向量表号-16(即前16个核中断,它们不是IRQ中断)):
注意图中所示为中断向量表号,IRQ中断号为99-16=83。
然后利用ARM核自带的API函数使能TSI的IRQ中断,如下
& & enable_irq(83);&&/* 使能TSI的IRQ中断 */
该函数的具体内容如下,注意每个NVICCPRx和NVICISERx都是32字节对齐的,即管理32个IRQ中断,所以要根据TSI实际的中断号算出其具体在哪一个寄存器里设置。
void enable_irq (int irq)
& & div = irq/32;
& & switch (div)
& &&&case 0x0:
& && && && &&&NVICICPR0 |= 1 && (irq%32);
& && && && &&&NVICISER0 |= 1 && (irq%32);
& && && && &&&
& &&&case 0x1:
& && && && &&&NVICICPR1 |= 1 && (irq%32);
& && && && &&&NVICISER1 |= 1 && (irq%32);
& && && && &&&
& &&&case 0x2:
& && && && &&&NVICICPR2 |= 1 && (irq%32);
& && && && &&&NVICISER2 |= 1 && (irq%32);
& && && && &&&
& & }& && && && &&&
主题帖子积分
助理工程师, 积分 1263, 距离下一级还需 737 积分
助理工程师, 积分 1263, 距离下一级还需 737 积分
主题帖子积分
专家等级:结帖率:0%打赏:0.00受赏:0.20
主题帖子积分
助理工程师, 积分 1263, 距离下一级还需 737 积分
助理工程师, 积分 1263, 距离下一级还需 737 积分
(3)配置优先级,这一步如果没特殊需要的话可以默认,不设置即可,如果设置的话也可以通过API函数执行,如下
& & set_irq_priority (83,5); /* 设置TSI中断优先级为5,注意越小优先级越大 */
(4)编写相应的中断服务函数
/********************************************************************************
**Routine: TSI_isr
**Description: TSI模块,out of Range 中断服务程序,中断服务号为99,IRQ为83
********************************************************************************/
void TSI_isr(void);
然后在写完该中断服务函数之后,我们需要把该中断函数地址映射到中断向量表里面,所以找到isr.h文件打开,设置如下;
& & #undef&&VECTOR_099&&/* 取消原来默认的宏定义 */
& & #define VECTOR_099& && &TSI_isr&&/* 重定义中断服务函数名为VECTOR_99*/
(5)使能全局中断
EnableI /* 其宏定义为CPSIE i,即设置特殊功能寄存器 */
& & 完整的中断编写流程如上,喝口水。其中可能有些寄存器和有关NVIC概念和结构之类的建议看看官方文档或者直接到ARM官网下载Cortex-M核的介绍瞅一瞅,相信会让你受益匪浅。
主题帖子积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
非常感谢你关于Kinetis的经验分享 !
技术导师奖章
人才类勋章
坚毅之洋流
发帖类勋章
时间类勋章
精英会员奖章
等级类勋章
热门推荐 /2  首先,在学习Cortex-M3时,我们必须要知道必要的缩略语。
  整理如下:
  AMBA:先进单片机总线架构 ADK:AMBA设计套件
  AHB:先进高性能总线 AHB-AP:AHB访问端口
  APB:先进外设总线 ARM ARM:ARM架构参考手册
  ASIC:行业领域专用集成电路 ATB :先进跟踪总线
  BE8:字节不变式大端模式 CPI:每条指令的周期数
  DAP:调试访问端口 DSP:数字信号处理(器)
  DWT:数据观察点及跟踪 ETM:嵌入式跟踪宏单元
  FPB:闪存地址重载及断点 FSR:fault状态寄存器
  HTM:Core Sight AHB跟踪宏单元
  ICE:在线仿真器 IDE:集成开发环境
  IRQ:中断请求(通常是外中断请求)
  ISA:指令系统架构 ISR:中断服务例程
  ITM:仪器化跟踪宏单元
  JTAG:连接点测试行动组(一个关于测试和调试接口的标准)
  LR:连接寄存器
  LSB:最低有效位
  MSB:最高有效位
  LSU:加载存储单元
  MCU:微控制器单元
  MPU:存储器保护单元
  MMU:存储器管理单元
  MSP:主堆栈指针
  NMI:不可屏蔽中断
  NVIC:嵌套向量中断控制器
  PC:程序计数器
  PPB:私有外设总线
  同时,还要如下规定:
  1. 4''hC , 0x123 都表示16进制数
  2. #3表示数字3 (e.g., IRQ #3 就是指3号中断)
  3. #immed_12表示一个12位的立即数
  4. 寄存器位。通常是表示一个位段的数值,例如
  bit[15:12] 表示位序号从15往下数到12,这一段的数值。
  寄存器访问类型
  1. R 表示只读
  2. W表示只写
  3. RW 表示可读可写(前3条好像地球人都知道)
  4. R/Wc 表示可读,但是写访问将使之清 0
  Cortex-M3芯片简介
  1、芯片的基本结构如下图:
  2、关于ARMv7的知识--了解
  在这个版本中,内核架构首次从单一款式变成3种款式:
  款式A:设计用于高性能的“开放应用平台”——越来越接近电脑了
  款式R:用于高端的嵌入式系统,尤其是那些带有实时要求的——又要快又要实时。
  款式M:用于深度嵌入的,单片机风格的系统中
  介绍A:用于高性能的“开放应用平台”,应用在那些需要运行复杂应用程序的处理器。支持大型嵌入式操作系统
  R:用于高端的嵌入式系统,要求实时性的
  M:用于深度嵌入的、单片机风格的系统中
  3、Cortex-M3处理器的舞台
  高性能+高代码密度+小硅片面积,使得CM3大面积地成为理想的处理平台,主要应用在以下领域:
  (1)低成本单片机
  (2)汽车电子
  (3)数据通信
  (4)工业控制
  (5)消费类电子产品
  4、Cortex-M3概览
  (1)简介
  Cortex-M3是一个 32位处理器内核。内部的数据路径是 32位的,寄存器是 32位的,存储器接口也是 32 位的。CM3 采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。这样一来数据访问不再占用指令总线,从而提升了性能。为实现这个特性, CM3内部含有好几条总线接口,每条都为自己的应用场合优化过,并且它们可以并行工作。但是另一方面,指令总线和数据总线共享同一个存储器空间(一个统一的存储器系统)。
  比较复杂的应用可能需要更多的存储系统功能,为此CM3提供一个可选的MPU,而且在需要的情况下也可以使用外部的 cache。另外在CM3中,Both小端模式和大端模式都是支持的。
  (2)Cortex-M3的简化图
  (3)寄存器组
  处理器拥有R0-R15的寄存器组,其中R13最为堆栈指针SP,SP有两个,但是同一时刻只能有一个可以看到,这就是所谓的“banked”寄存器。
  a、R0-R12都是 32位通用寄存器,用于数据操作。但是注意:绝大多数 16位Thumb指令只能访问R0-R7,而 32位 Thumb-2指令可以访问所有寄存器。
  b、Cortex-M3拥有两个堆栈指针,然而它们是 banked,因此任一时刻只能使用其中的一个。
  主堆栈指针(MSP):复位后缺省使用的堆栈指针,用于操作系统内核以及异常处理例程(包括中断服务例程)
  进程堆栈指针(PSP):由用户的应用程序代码使用。
  ---堆栈指针的最低两位永远是0,这意味着堆栈总是4字节对齐的。---
  c、R14:连接寄存器--当呼叫一个子程序时,由R14存储返回地址
  d、R15:程序计数寄存器--指向当前的程序地址,如果修改它的值,就能改变程序的执行流(这里有很多高级技巧)
  e、Cortex-M3还在内核水平上搭载了若干特殊功能寄存器,包括
  程序状态字寄存器组(PSRs)
  中断屏蔽寄存器组(PRIMASK, FAULTMASK, BASEPRI)
  控制寄存器(CONTROL)
  Cortex-M3处理器支持两种处理器的操作模式,还支持两级特权操作。
  两种操作模式分别为:处理者模式和线程模式(thread mode)。引入两个模式的本意,是用于区别普通应用程序的代码和异常服务例程的代码——包括中断服务例程的代码。
  Cortex-M3 的另一个侧面则是特权的分级——特权级和用户级。这可以提供一种存储器访问的保护机制,使得普通的用户程序代码不能意外地,甚至是恶意地执行涉及到要害的操作。处理器支持两种特权级,这也是一个基本的安全模型。
  在 CM3 运行主应用程序时(线程模式),既可以使用特权级,也可以使用用户级;但是异常服务例程必须在特权级下执行。复位后,处理器默认进入线程模式,特权极访问。在特权级下,程序可以访问所有范围的存储器(如果有 MPU,还要 在MPU规定的禁地之外),并且可以执行所有指令。
  在特权级下的程序可以为所欲为,但也可能会把自己给玩进去——切换到用户级。一旦进入用户级,再想回来就得走“法律程序”了——用户级的程序不能简简单单地试图改写 CONTROL寄存器就回到特权级,它必须先“申诉”:执行一条系统调用指令(SVC)。这会触发SVC异常,然后由异常服务例程(通常是操作系统的一部分)接管,如果批准了进入,则异常服务例程修改 CONTROL寄存器,才能在用户级的线程模式下重新进入特权级。
  事实上,从用户级到特权级的唯一途径就是异常:如果在程序执行过程中触发了一个异常,处理器总是先切换入特权级,并且在异常服务例程执行完毕退出时,返回先前的状态
  通过引入特权级和用户级,就能够在硬件水平上限制某些不受信任的或者还没有调试好的程序,不让它们随便地配置涉及要害的寄存器,因而系统的可靠性得到了提高。进一步地,如果配了 MPU,它还可以作为特权机制的补充——保护关键的存储区域不被破坏,这些区域通常是操作系统的区域。
  (4)内建的嵌套向量中断控制器
  Cortex-M3 在内核水平上搭载了一颗中断控制器——嵌套向量中断控制器 NVIC(Nested Vectored Interrupt Controller)。它与内核有很深的“亲密接触”——与内核是紧耦合的。
  NVIC提供如下的功能:
  可嵌套中断支持
  向量中断支持
  动态优先级调整支持
  中断延迟大大缩短
  中断可屏蔽
  可嵌套中断支持: 可嵌套中断支持的作用范围很广,覆盖了所有的外部中断和绝大多数系统异常。外在表现是,这些异常都可以被赋予不同的优先级。当前优先级被存储在 xPSR 的专用字段中。当一个异常发生时,硬件会自动比较该异常的优先级是否比当前的异常优先级更高。如果发现来了更高优先级的异常,处理器就会中断当前的中断服务例程(或者是普通程序),而服务新来的异常——即立即抢占。
  向量中断支持: 当开始响应一个中断后,CM3会自动定位一张向量表,并且根据中断号从表中找出 ISR的入口地址,然后跳转过去执行。不需要像以前的 ARM那样,由软件来分辨到底是哪个中断发生了,也无需半导体厂商提供私有的中断控制器来完成这种工作。这么一来,中断延迟时间大为缩短。
  (5)存储器映射
  Cortex-M3支持4G存储空间,具体分配如下图:
  (6)总线接口
  Cortex-M3内部有若干个总线接口,以使 CM3能同时取址和访内(访问内存),它们是:
  ? 指令存储区总线(两条)
  ? 系统总线
  ? 私有外设总线
  有两条代码存储区总线负责对代码存储区的访问,分别是 I-Code 总线和 D-Code 总线。前者用于取指,后者用于查表等操作,它们按最佳执行速度进行优化。
  系统总线用于访问内存和外设,覆盖的区域包括 SRAM,片上外设,片外 RAM,片外扩展设备,以及系统级存储区的部分空间。
  私有外设总线负责一部分私有外设的访问,主要就是访问调试组件。它们也在系统级存储区。
  (7)存储器保护单元(MPU)
  Cortex-M3有一个可选的存储器保护单元。配上它之后,就可以对特权级访问和用户级访问分别施加不同的访问限制。当检测到犯规(violated)时,MPU 就会产生一个 fault 异常,可以由fault异常的服务例程来分析该错误,并且在可能时改正它。
  MPU 有很多玩法。最常见的就是由操作系统使用 MPU,以使特权级代码的数据,包括操作系统本身的数据不被其它用户程序弄坏。MPU在保护内存时是按区管理的。它可以把某些内存 region设置成只读,从而避免了那里的内容意外被更改;还可以在多任务系统中把不同任务之间的数据区隔离。一句话,它会使嵌入式系统变得更加健壮,更加可靠(很多行业标准,尤其是航空的,就规定了必须使用 MPU来行使保护职能——译
  注) 。
  (8)Cortex-M3的简评
  1、高性能
  许多指令都是单周期的——包括乘法相关指令。并且从整体性能上,Cortex-M3比得过绝大多数其它的架构。
  指令总线和数据总线被分开,取值和访内可以并行不悖
  Thumb-2的到来告别了状态切换的旧世代,再也不需要花时间来切换于 32位 ARM状态和16位Thumb状态之间了。这简化了软件开发和代码维护,使产品面市更快。
  Thumb-2指令集为编程带来了更多的灵活性。许多数据操作现在能用更短的代码搞定,这意味着 Cortex-M3的代码密度更高,也就对存储器的需求更少。
  取指都按 32位处理。同一周期最多可以取出两条指令,留下了更多的带宽给数据传输。
  Cortex-M3的设计允许单片机高频运行( 现代半导体制造技术能保证 100MHz以上的速度)即使在相同的速度下运行,CM3的每指令周期数(CPI)也更低,于是同样的 MHz下可以做更多的工作;另一方面,也使同一个应用在 CM3上需要更低的主频。
  2、先进的中断处理功能
  内建的嵌套向量中断控制器支持240条外部中断输入。向量化的中断功能大大减少了中断延迟,因为不在需要软件去判断中断源。中断的嵌套也是在硬件水平上实现的,不需要软件代码来实现。
  Cortex-M3在进入异常服务例程时,自动压栈了 R0-R3, R12, LR, PSR 和PC,并且在返回时自动弹出它们,这多清爽!既加速了中断的响应,也再不需要汇编语言代码了
  NVIC支持对每一路中断设置不同的优先级,使得中断管理极富弹性。最粗线条的实现也至少要支持 8级优先级,而且还能动态地被修改。
  优化中断响应还有两招,它们分别是“咬尾中断机制”和“晚到中断机制”。
  有些需要较多周期才能执行完的指令,是可以被中断-继续的——就好比它们是一串指令一样。这些指令包括加载多个寄存器(LDM),存储多个寄存器(STM),多个寄存器参与的PUSH,以及多个寄存器参与的 POP。
  除非系统被彻底地锁定,NMI(不可屏蔽中断)会在收到请求的第一时间予以响应。对很多安全-关键(safety-critical)的应用,NMI都是必不可少的(如化学反应即将失控时的紧急停机)。
  通过上面我们可以很容易理解STM32的一些基本知识和结构,为学习STM32打好了基础。
声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。Cortex-M3 GPIO接口配置和中断管理_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Cortex-M3 GPIO接口配置和中断管理
上传于||暂无简介
阅读已结束,如果下载本文需要使用3下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩9页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢Cortex的M3的特点_科普知识_中国百科网
Cortex的M3的特点
    Cortex-M3 -特点 高性能? 许多指令都是单周期的――包括乘法相关指令。并且从整体性能上,Cortex-M3比得过绝大多数其它的架构。? 指令总线和数据总线被分开,取值和访内可以并行不悖? Thumb-2的到来告别了状态切换的旧世代,再也不需要花时间来切换于32位ARM状态和16位Thumb状态之间了。这简化了软件开发和代码维护,使产品面市更快。? Thumb-2指令集为编程带来了更多的灵活性。许多数据操作现在能用更短的代码搞定,这意味着Cortex-M3的代码密度更高,也就对存储器的需求更少。? 取指都按32位处理。同一周期最多可以取出两条指令,留下了更多的带宽给数据传输。? Cortex-M3的设计允许单片机高频运行(现代半导体制造技术能保证100MHz以上的速度)。即使在相同的速度下运行,CM3的每指令周期数(CPI)也更低,于是同样的MHz下可以做更多的工作;另一方面,也使同一个应用在CM3上需要更低的主频。2.11.2 先进的中断处理功能? 内建的嵌套向量中断支持多达240条外部中断输入。向量化的中断功能剧烈地缩短了中断延迟,因为不再需要软件去判断中断源。中断的嵌套也是在硬件水平上实现的,不需要软件代码来实现。? Cortex-M3在进入异常服务例程时,自动压栈了R0-R3, R12, LR, PSR和PC,并且在返回时自动弹出它们,这多清爽!既加速了中断的响应,也再不需要汇编语言代码了(第8章有详述)。? NVIC支持对每一路中断设置不同的优先级,使得中断管理极富弹性。最粗线条的实现也至少要支持8级优先级,而且还能动态地被修改。? 优化中断响应还有两招,它们分别是“咬尾中断机制”和“晚到中断机制”。? 有些需要较多周期才能执行完的指令,是可以被中断-继续的――就好比它们是一串指令一样。这些指令包括加载多个寄存器(LDM),存储多个寄存器(STM),多个寄存器参与的PUSH,以及多个寄存器参与的POP。? 除非系统被彻底地锁定,NMI(不可屏蔽中断)会在收到请求的第一时间予以响应。对于很多安全-关键(safety-critical)的应用,NMI都是必不不可少的(如化学反应即将失控时的紧急停机)。低功耗? Cortex-M3需要的逻辑门数少,所以先天就适合低功耗要求的应用(功率低于0.19mW/MHz)在内核水平上支持节能模式(SLEEPING和SLEEPDEEP位)。通过使用“等待中断指令(WFI)”和“等待事件指令(WFE)”,内核可以进入睡眠模式,并且以不同的方式唤醒。另外,模块的时钟是尽可能地分开供应的,所以在睡眠时可以把CM3的大多数“官能团”给停掉。? CM3的设计是全静态的、同步的、可综合的。任何低功耗的或是标准的半导体工艺均可放心饮用。系统特性? 系统支持“位寻址带”操作(8051位寻址机制的“威力大幅加强版”),字节不变的大端模式,并且支持非对齐的数据访问。? 拥有先进的fault处理机制,支持多种类型的异常和faults,使故障诊断更容易。? 通过引入banked堆栈指针机制,把系统程序使用的堆栈和用户程序使用的堆栈划清界线。如果再配上可选的MPU,处理器就能彻底满足对软件健壮性和可靠性有严格要求的应用。调试支持? 在支持传统的JTAG基础上,还支持更新更好的串行线调试接口。? 基于CoreSight调试解决方案,使得处理器哪怕是在运行时,也能访问处理器状态和存储器内容。? 内建了对多达6个断点和4个数据观察点的支持。? 可以选配一个ETM,用于指令跟踪。数据的跟踪可以使用DWT? 在调试方面还加入了以下的新特性,包括fault状态寄存器,新的fault异常,以及闪存修补 (patch)操作,使得调试大幅简化。? 可选ITM模块,测试代码可以通过它输出调试信息,而且“拎包即可入住”般地方便使用。
收录时间:日 17:18:24 来源:百科网 作者:匿名
上一篇: &(&&)
创建分享人
喜欢此文章的还喜欢
Copyright by ;All rights reserved. 联系:QQ:}

我要回帖

更多关于 mips中断机制 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信