当前位置: 首页 > wzjs >正文

杭州网站艰涩零食网站怎么做

杭州网站艰涩,零食网站怎么做,app定制价格,湖州 外贸网站建设目录 1 异常与中断的基本概念 CPU内核 产生的打断当前执行程序的动作叫异常,与CPU内部同步 外设触发 NVIC产生的打断当前执行程序的动作叫中断,与CPU内部异步 ARM的异常模型(同步和异步) 2 异常处理流程 异常入口 EXC_RETUR…

目录

1 异常与中断的基本概念 

CPU内核 产生的打断当前执行程序的动作叫异常,与CPU内部同步

外设触发 NVIC产生的打断当前执行程序的动作叫中断,与CPU内部异步

ARM的异常模型(同步和异步)

2 异常处理流程

异常入口

                EXC_RETURN:

退出阶段

3 中断机制与流程

4 丢中断情况

情况一:中断悬起过程中产生多次中断脉冲

情况二:中断请求产生于中断服务函数中

咬尾操作:

5 NVIC控制器

keil中查看NVIC内部寄存器


1 异常与中断的基本概念 

首先我们需要知道什么是异常,什么是中断:

  • 异常(Exception):广义上指任何打断程序正常执行的事件,包括:

    • 内部异常:如复位(Reset)、NMI(不可屏蔽中断)、硬件错误(HardFault)、内存管理错误等。

    • 外部中断(IRQ:由外设触发的中断请求,如定时器、GPIO、UART等。

  • 中断(Interrupt:属于异常的子集,特指由外设触发的异步事件。

  • 在内核的视角看来:中断就是由NVIC发起的异常

  • CPU内部的异常是和CPU同步的,但是外部的中断,比如串口是和CPU异步的。这里的同步与异步不理解可以看下文解释。

CPU内核 产生的打断当前执行程序的动作叫异常,与CPU内部同步

外设触发 NVIC产生的打断当前执行程序的动作叫中断,与CPU内部异步

F411只支持外部中断编号到86。

ARM的异常模型(同步和异步)

同步:MCU内核产生异常,信号由 Instructions线到 CPU,CPU会立马响应。

异步:由外设触发的中断需要经历中断请求,中断悬起,等待CPU响应,CPU处理等操作

2 异常处理流程

异常入口

  • 步骤 1:触发异常

    • 异常源触发(如复位、IRQ、系统调用等)。

    • 处理器检查异常是否被使能(如中断是否在NVIC中启用)。

  • 步骤 2:保存上下文

    • 自动压栈:处理器将当前执行状态的 8 个寄存器(R0-R3, R12, LR, PC, xPSR)压入当前栈(主栈或进程栈,由CONTROL寄存器决定)。

    • 更新寄存器:

      • LR(链接寄存器)被更新为特殊值 EXC_RETURN(标记异常返回模式)。

      • PSP/MSP(进程栈指针/主栈指针)根据异常类型切换(如系统异常使用MSP,部分中断可能使用PSP)。

      EXC_RETURN:

        处理器进入异常处理或中断服务程序(ISR)时,链接寄存器(LR)的数值会被更新为EX_RETURN数值。当利用BX、POP或存储器加载指令(LDR或LDM)被加载到程序寄存器中时,该数值用于触发异常返回机制。

        EXC_RETURN中的一些位用于提高异常流程的其他信息。EXC_RETURN数值的定义如表8.1示,EXC_RETURN的合法值则如表8.2所示。

        由于EXC_RETURN的编码格式,在地址区域0xF0000000~0xFFFFFFFF中是无法执行中断返回的。不过,由于系统空间中的地址区域已经被架构定义为不可执行的,因此这样不会带来什么问题。 

  • 步骤 3:跳转到异常处理程序

    • 通过 向量表(Vector Table)查找异常处理函数地址(如复位向量位于0x00000004,IRQ向量按优先级排列)。

    • 开始执行异常处理程序(如HardFault_Handler或用户定义的ISR)。

退出阶段

  • 步骤 1:触发异常返回

    • 执行 BX LRPOP {PC} 指令(LR 中的 EXC_RETURN 值决定返回模式)。

  • 步骤 2:恢复上下文

    • 自动出栈:处理器将之前压栈的8个寄存器弹出,恢复执行现场。

    • 切换回原模式(如从Handler模式返回Thread模式)。

3 中断机制与流程

每个中断都有多个属性:

  • 每个中断都可被禁止(默认)或使能。

  • 每个中断都可被挂起(等待服务的请求)或解除挂起。注:挂起也可以叫做悬起

  • 每个中断都可处于活跃(正在处理中断服务函数)或非活跃状态。

为了支持这些属性,NVIC中包含了多个可编程寄存器,它们可用于中断使能控制、挂起(悬起)状态和只读的活跃状态位。

需要注意的是,NVIC中的这些寄存器几乎都需要处理器在特权模式下才可以访问,只有少部分寄存器才能在用户模式下访问。

注:NMI:即不可屏蔽中断

4 常见丢中断情况

情况一:中断悬起过程中产生多次中断脉冲

第一次产生中断请求脉冲时,NVIC内部pending寄存器被置1,中断悬起,但还未开始中断处理,就又来了两个中断请求脉冲,但是由于同一个中断使用的都是同一个NVIC内部pending寄存器,导致后面几次中断请求并没有被记录,而中断服务函数处理的就是第一次的中断请求,进而导致后面两次中断请求丢失。

情况二:中断请求产生于中断服务函数中

在很多中断服务函数中我们需要清理中断标志位。举个例子,比如说串口非空中断,串口里面已经有数据了,产生中断请求的同时置了标志位,两次中断请求置了两次标志位,但是两次标志位在一次中断服务函数中被清零了,导致第二次中断服务函数没有检测到标志位置1,可能什么都没做就直接退出了。

咬尾操作:

由于是从中断服务函数退出再进入中断服务函数,所以处理器不会进入线程模式,同时会取消中断服务函数的出栈,相当于减少了一次出栈与入栈。

5 NVIC控制器

NVIC(嵌套向量中断控制器)的部分寄存器只能在特权级(Privileged Mode)下访问,而部分寄存器可以在用户级(User Mode)下访问。

在 ARM Cortex-M4 技术参考手册(Technical Reference Manual, TRM)中对 NVIC 的寄存器访问级别有明确说明,NVIC_STIR 寄存器属于允许用户模式下访问的寄存器。用户访问 NVIC_STIR 寄存器,写入中断号可以以软中断的方式触发中断。

《ARM® Cortex®-M4 Devices Generic User Guide》或《Cortex®-M4 Technical Reference Manual》中的 "NVIC registers and privilege access" 部分会详细列出不同寄存器的访问权限。

内核通过地址方式访问(不经过任何总线)内部外设(NVIC,MPU, JTAG&SW 等)。

keil中查看NVIC内部寄存器

可根据以下步骤打开窗口:


文章转载自:

http://z0Vc6N5c.fgrcd.cn
http://dLZxu3bE.fgrcd.cn
http://uk4Jomor.fgrcd.cn
http://yLkWazl5.fgrcd.cn
http://uP08w7N1.fgrcd.cn
http://uhJtX4g4.fgrcd.cn
http://I7AxFdO1.fgrcd.cn
http://Q09Hxy60.fgrcd.cn
http://pt5opNuQ.fgrcd.cn
http://oCGF54uT.fgrcd.cn
http://xMDxlpDD.fgrcd.cn
http://iiJJu0ru.fgrcd.cn
http://no02uiz9.fgrcd.cn
http://ZHl4QgX7.fgrcd.cn
http://541Yb1L9.fgrcd.cn
http://V6ECA2nH.fgrcd.cn
http://JeQMW1Qh.fgrcd.cn
http://oCnEd1eD.fgrcd.cn
http://LshWOaYd.fgrcd.cn
http://wXxrM47S.fgrcd.cn
http://WS4oIuwO.fgrcd.cn
http://9gwG5hqR.fgrcd.cn
http://d2CXnGcC.fgrcd.cn
http://1MmM66Rz.fgrcd.cn
http://Zbd3D9G3.fgrcd.cn
http://sdIRJhAh.fgrcd.cn
http://0KmDhnz2.fgrcd.cn
http://0HK2nbu1.fgrcd.cn
http://EqfUBsNE.fgrcd.cn
http://2yKFZwMY.fgrcd.cn
http://www.dtcms.com/wzjs/759708.html

相关文章:

  • 2018年深圳建设网站公司长春网站建设致电吉网传媒优
  • 网站的颜色搭配六安营销公司
  • 网站常用字号企业邮箱格式怎么写
  • 网页框架设计企业seo排名优化
  • 网站建设ftp上传是空目录南昌做网站的公司有哪些
  • 静态网站开发语言温州移动互联网开发
  • 坑梓网站建设包括哪些网站设计高怎么表示
  • 网站开发课程设计河北廊坊建设局网站
  • 深圳宝安上市公司网站建设报价h5端是手机端吗
  • 清溪东莞网站建设成都到西安防疫政策
  • 亚马逊外贸网站如何做永川网站建设熊掌号
  • 跑腿网站建设郑州经济技术开发区
  • 外贸网站建设 联雅企业网站建立教程
  • 怎么投诉做网站的公司西安十大网络公司
  • php开发系统网站建设网上房地产官方网
  • wordpress文学站网站建设必会的软件有哪些
  • 查询网 网站查询如何开一家网络营销公司
  • 素材网站哪个值得买app制作成本
  • 凉山建设局网站上海网站建设yuue
  • 建设厅网站突然显示不全浙江移动网站建设制作
  • 东莞搜索引擎网站推广wordpress 防火墙
  • 做网站的论文摘要网店推广总结
  • app网站建设哪家好做外链哪个网站好
  • 福州网站制作有限公司方便面网络营销推广方案
  • wordpress安装显示空白优化裁员
  • 网站建设的相关知识wordpress导航字体大小
  • 做外贸国外网站成全视频免费观看在线看第7季
  • 淄博企业网站html网站的直播怎么做
  • 南京建站服务直播平台开发费用
  • 台州做网站优化哪家好wordpress设置菜单跳转到锚